2、当前日期,实际上sysdate可以理解为函数,返回当前系统时间:
返回当前时间戳,不常用:
3、日期加一天、减一天:
日期加一小时,(如果是分钟的话,1/24/60):
日期加一个月、减一个月、加一年(add_months):
年、月、天、时、分、秒加减的另一种写法(numtodsinterval、numtoyminterval):
日期减法,天数差;
4、精度控制(floor 向下取整、ceil 向下取整、round 四舍五入、trunc 截断):实际上多用于数字精度运算,其中 floor、ceil 不用于日期,round、trunc 可以添加第二个参数控制精度:
5、计算月份差(months_between):
6、日期比较,略(数字、字符串的比较方法一致):
=
等于>大于<小于>=大于等于<=小于等于!=不等于<>不等于7、(拓展)函数greatest、least用于取一些数据的最大值和最小值,数字和字符串同样使用:
数字略字符串(多基于函数)1、拼接:
2、截断(substr),从第1个字符开始,截取长度为2:
3、匹配查询(instr),从第1个字符开始,查询字符或者字符串“B”,第3次出现的位置:
结合 instr 和 substr,可以有更多不一样的截取,比如从右向左,或者如下的截取某个字符串出现之前的字符:
4、替换(replace):
5、替换(translate):用的不多,理解可能较为复杂,建议查看官网:https://docs.oracle.com/en/database/oracle/oracle-database/20/sqlrf/TRANSLATE.html#GUID-80F85ACB-092C-4CC7-91F6-B3A585E3A690
6、两端去掉空值(trim、ltrim、rtrim):
7、关于字符串,还可以使用正则表达式处理(更强大的截取、定位和替换):[Oracle 专题] SQL 正则表达式
8、关于字符串比较运算,在日期部分已有描述。
转换
1、Oracle 的类型转换分为显式转换和隐式,隐式转换说白了就是直接使用,日期当初字符串直接使用,数字当成字符串直接使用,或者反之:
2、显式转换则是通过函数实现:
日期转字符串(to_char)、字符串转日期(to_date),下面是带有格式参数(可选)的例子:
字符串与日期的转换可选添加格式参数,格式参数可以自由组合,字符串转日期时格式参数要与字符串匹配,格式参数不区分大小写:
yyyy
年,4位
yy年,2位mm月dd日
hh24
时,24小时制hh
时,12小时制
mi分ss秒w当月第几周ww当年第几周q季度
3、数字转字符串(to_char)、字符串转数字(to_number):
4、数字转字符串时,同样可选格式参数:
参数不区分大小写:
9数字00??.小数点,千位符$美元L本地货币
5、当然数字也可以转日期:
总结,日期、字符串、数字,均可互相转换,均有相似的比较、合并、截取、精度控制等运算。
谢谢