请注意,本文编写于 773 天前,最后修改于 773 天前,其中某些信息可能已经过时。
日期
1、日期基本写法:
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 ):
用的不多,理解可能较为复杂,建议查看官网:
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 | 数字 |
---|---|
0 | 0 |
. | 小数点 |
, | 千位符 |
$ | 美元 |
L | 本地货币 |
5、当然数字也可以转日期:
总结,日期、字符串、数字,均可互相转换,均有相似的比较、合并、截取、精度控制等运算。