我用sql server 这样写的 先想用ORACLE 不知道怎么截取
sql server:
DECLARE @sql VARCHAR(1000)
DECLARE @str VARCHAR(1000)
SET @sql ='filelist_pmd_mm_dd.20110913.013617.csv'
BEGIN
SET @str = 'SELECT CAST(SUBSTRING(REPLACE(RIGHT('''+@sql+''',19),''_'',''''),1,8)AS DATETIME2(7)) as ss'
END
EXEC (@str);
请问在oracle里怎么实现上面的
在orclae大概知道用subtr() 和instr()两个函数
------解决方案--------------------
CONCAT(column1
------解决方案--------------------
expression1,column2
------解决方案--------------------
expression2):相当于
------解决方案--------------------
SUBSTR(column
------解决方案--------------------
expression,m[,n]):返回字符串字符,从第m个字符开始,长度为n个字符;m为负数,则从末尾开始,省略n,则返回一直到末尾的所有字符
INSTR(column
------解决方案--------------------
expression,'string',[,m],[n]):返回指定字符串的数字位置。m:开始搜索的位置;n:字符串出现次数;m和n默认为1
INITCAP:将每个单词第一个字母转换为大写,其余字母保留小写
LPAD(column
------解决方案--------------------
expression, n, 'string'):将字符值按右对齐排列,然后左侧填充字符,以使总字符宽度为n
RPAD(column
------解决方案--------------------
expression, n, 'string'):将字符值按左对齐排列,然后右侧填充字符,以使总字符宽度为n
TRIM(leading
------解决方案--------------------
trailing
------解决方案--------------------
both, trim_character FROM trim_source):从字符串trim_source截取头部,尾部或者两头的字符trim_character
特殊用法:SELECT LOWER(TRIM('H' FROM 'HelloWorld')) FROM dual;
ROUND(column
------解决方案--------------------
expression,n):将列,表达式或者值进行四舍五入,保留n个小数位;n为负数,将四舍五入小数点左边;n默认为0
TRUNC(column
------解决方案--------------------
expression,n):将列,表达式或者值进行截取,保留n个小数位;n为负数,将截取小数点左边;n默认为0
------解决方案--------------------
请参考
select substr ('abcdefg-20110913.013617.csv',length('abcdefg-20110913.013617.csv')-18,8)
------解决方案--------------------
' 00:00:00.0000000' from dual