关于时间函数的操作
Oracle中时间函数逐步整理一下,以往只查询网上的用法,自己整理的才是自己的
- 转换 to_char、to_date : 转换格式时间,以时间2019-09-02 13:45:12为例
select to_char(to_date('2019-09-02 13:45:12','yyyy-mm-dd hh24:mi:ss'),'yy-mm-ddd hh:mi:ss') from dual;
| 格式 | 含义 | 显示值 | 
| yy | 两位年 | 19 | 
| yyy | 三位年 | 019 | 
| yyyy | 四位年 | 2019 | 
| mm | 两位月 | 09 | 
| mon | 字符集表示 | 9月、nov | 
| month | 字符集 | 9月、november | 
| dd | 当月日期 | 02 | 
| ddd | 当年日期 | 245 | 
| dy | 当周第几天 | 星期一、fri | 
| day | 当周第几天 | 星期一、friday | 
| hh | 12小时制小时 | 01 | 
| hh24 | 24小时制小时 | 13 | 
| mi | 分钟 | 45 | 
| ss | 秒 | 12 | 
| Q | 季度quarter 简写 | 3 | 
| W | 当月第几周,week简写 | 1 | 
| WW | 当年第几周 | 35 | 
- 两个日期的差值:
- 天数可以直接加减计算,用trunc函数取整(取整函数视情况,to_number直接显示数字):
 
select trunc(sysdate-to_date('2019-09-02 13:45:12','yyyy-mm-dd hh24:mi:ss')) from dual;
- 
- 月份用months_between函数比较,得出小数用ceil取上,用floor取下
 
select months_between(sysdate,to_date('2019-09-02 13:45:12','yyyy-mm-dd hh24:mi:ss')) from dual;
- 
- 年份用月份的值除12,得出小数用ceil取上,用floor取下
 
select months_between(sysdate,to_date('2019-09-02 13:45:12','yyyy-mm-dd hh24:mi:ss'))/12 from dual;
- 
- 相差小时
 
select trunc((sysdate-to_date('2020-07-16 16:03:45','yyyy-mm-dd hh24:mi:ss'))*24) from dual;
- 
- 相差分钟
 
select trunc((sysdate-to_date('2020-07-16 16:03:45','yyyy-mm-dd hh24:mi:ss'))*24*60) from dual;
- 
- 相差秒数
 
select trunc((sysdate-to_date('2020-07-16 16:03:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60) from dual;
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号