ORACLE 日期函数

timestamp 日期类型 秒 后面还有9位,默认6位,通过ff6,ff7,ff8,ff9,或者ff默认6

select  to_char(systimestamp, 'yyyymmdd hh24:mi:ssxff6'),
  to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff6') from dual;  

timestamp转成date 
select cast(to_timestamp('2011-09-14 12:52:42.123456789', 'syyyy-mm-dd hh24:mi:ss.ff') as date) timestamp_to_date from dual;  

date型转成timestamp
select cast(sysdate as timestamp) date_to_timestamp from dual;  


两个日期区间毫秒数(两date的日期相减得出的是天数)

    select TO_NUMBER((to_date('2020-4-29 10:10:10','yyyy-mm-dd hh24:mi:ss')
       -to_date('2020-4-29 10:20:10','yyyy-mm-dd hh24:mi:ss'))*24*60*60*1000) from dual; 


两timestamp的日期相减得出的是完整的年月日时分秒小数秒
select sysdate-sysdate,systimestamp-systimestamp from dual;

select extract(day from inter) * 24 * 60 * 60 +   
  extract(hour from inter) * 60 * 60 + extract(minute from inter) * 60 +   
    extract(second from inter) "seconds" from 
(
  select to_timestamp('2011-09-14 12:34:23.281000000', 'yyyy-mm-dd hh24:mi:ss.ff') -   
    to_timestamp('2011-09-14 12:34:22.984000000', 'yyyy-mm-dd hh24:mi:ss.ff') inter from dual
); 




select to_char(sysdate,'Y') from dual;--年
select to_char(sysdate,'Q') from dual;--季
select to_char(sysdate,'MM') from dual;--第几个月
select to_char(sysdate,'WW') from dual;--当年第几周,1.8是第二周
select to_char(sysdate,'W') from dual;--当月第几周,第八天是第二周
select to_char(sysdate,'IW') from dual;--当月第几周,新年第一天是第一周,下一个星期一是第二周
select to_char(to_date('20191231','yyyyMMdd'),'IW') from dual; --最后一天的周别是 1
select to_char(sysdate,'D') from dual;--当周第几天,星期日第一天
select to_char(sysdate,'DAY') from dual;--当周星期几
select to_char(sysdate,'DD') from dual;--当月几号  

IW是ISO标准周,它的含义是ISO标准周以周别为“主线”,每年最多可以有53个周别,但是每年至少要包含52个周别;如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周;如果在不足52周别的话,则以下一年的时间来补;每周固定的从周一开始作为本周的第1天,到周日作为本周的第7天;比如:在Oracle中  2012年01月01号依然属于IW周别2011年的第52周的第7天。这个用到的比较多。

 select last_day(to_date('20200511','yyyyMMdd')) from dual;--当月最后一天

 select add_months(to_date('20200511','yyyyMMdd'),1) from dual; --加一个月

select to_date('20200511030211','yyyyMMdd HH24miss')+1 from dual; --加一天


针对日期

--获取当周 周一日期
select trunc(to_date('20200107','yyyyMMdd'),'IW') from dual; 

--获取当月第一天日期
select trunc(to_date('20200107','yyyyMMdd'),'MM') from dual; 

--获取当年第一天日期
select trunc(to_date('20200107','yyyyMMdd'),'yyyy') from dual; 

针对数字	----不四舍五入

select trunc(123.458) from dual; --123

select trunc(123.458,0) from dual; --123

select trunc(123.458,1) from dual; --123.4

select trunc(123.458,-1) from dual; --120

select trunc(123.458,-4) from dual; --0

select trunc(123.458,4) from dual; --123.458

select trunc(123) from dual; --123

select trunc(123,1) from dual; --123

select trunc(123,-1) from dual; --120

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值