oracle 与 sqlserver 字符、时间函数的不同总结
2011-08-16 11:01
Mark SQLSERVER ORACLE
字符
连接
+
||或 concat
子串位置 charindex(‘子串’,‘总串’,第几次出现) instr(‘总串’,‘子串’,第几次出现)
模糊子串位置 patindex(‘%d%q’,‘总串’)
求子串 substring(‘总串’,开始位置,取得位数) substr(总串,开始位置,共取几位)
子串替换 stu$(总串,开始位置,长度,替换串)
replace(总串,被替换,替换串)
translate(总串,子串,替换串)子串全部替换
长度 len(串)或 datalength(串) length(串)
大小写转换
lower()/upper() lower()/upper()
首字母大写
initap()
补空格 space(长度)+串/串+space(长度) lpad(串,长度)/rpad(串,长度)
删除空格
ltrim/rtrim ltrim/rtrim/trim
重复字符串 replace(串,重复次数)
发音相似比较
soundex(串)=soundex(串)
用 di$erence(串 1,串 2)比较 soundex 的差
值
soundex(串)=soundex(串)
去空替换 Isnull(p1,p2)如果 p1 为空,用 p2 替换
nvl(p1,p2)如果 p1 为空,用 p2 代替
nvl2(p1,p2,p3)如果 p1 不为空输出 p2,为空输出 p3
nullif(p1,p2)如果 p1<>p2 返回 p1,p1=p2 返回空值
翻译字符串
translate(串)
列表中最大的字符
串
greatest
列表中最小的字符
串
least
时间
系统时间
getdate() sysdate()
当月最后一天
DATEADD(MS,-
3,DATEADD(mm,datedi$(m,0,getdate())
+1,0))
Last_day(时间)
本星期的某一天
Next_day(sysdate,7);;“星期天”
求日期
convert(char(10),getdate(),20)
trunc(sysdate)或 to_char(sysdate,'yyyy-mm-dd')
求时间
convert(char(10),getdate(),108) to_char(sysdate,'hh24:mm:ss')
取日期时间的其他
部分
datepart 或 datename(第一个参数决定) to_char(第二个参数决定)
字符串转时间 cast('串' as datetime) to_date('串','日期类型')
时间的差值 datedi$( 类型,开始时间,结束时间) 直接两个时间相减,结果为天数
根据差值求日期
dateadd()
直接相加
不同时区时间
New_time(日期,'时区一','时区二' )