您的位置:首页 > 博客中心 > 数据库 >

oracle 两个时间函数的探究

时间:2022-03-14 05:35

近来经常用到时间函数,在此写一个笔记,记录自己的所得,希望也对您有所帮助。

1、对于一个时间如 sysdate:2015/1/30 14:16:03如何只得到年月日,同时它的数据类型不变化呢?

最容易想到的是to_char然后在to_date,以前我所能想到的就是这个,因为觉得麻烦在网上搜了一下,找到了另外一种方法,trunc(sysdate),即可得到想要的结果

select MONTHS_BETWEEN(to_date(‘20150701‘,‘yyyymmdd‘),to_date(‘20150410 23:59:59‘,‘yyyymmdd HH24:mi:ss‘)) time from dual;
 
      TIME
----------
2.67741972
 
 select MONTHS_BETWEEN(to_date(‘20150701‘,‘yyyymmdd‘),to_date(‘20150411 00:00:00‘,‘yyyymmdd HH24:mi:ss‘)) time from dual;
 
      TIME
----------
2.67741935
 
 select MONTHS_BETWEEN(to_date(‘20150701‘,‘yyyymmdd‘),to_date(‘20150410‘,‘yyyymmdd‘)) time from dual;
 
      TIME
----------
2.70967741

 select MONTHS_BETWEEN(to_date(‘20150701‘,‘yyyymmdd‘),trunc(to_date(‘20150410 15:23:38‘,‘yyyymmdd HH24:mi:ss‘))) time from dual;
 
      TIME
----------
2.70967741
 

 最终不用肯定是使用trunc和months_between两者相结合来完成这个需求了。

 

本类排行

今日推荐

热门手游