Oracle自帶的日期相關函數

  month_between(日期1,日期2);查詢的是月份間隔

  如果日期1>日期2,則查出來是日期間間隔的正數,當然,結果可能會有小數點,把小數點略去,就是具體的月份間隔。

  如果日期1<日期2,則查出來是日期間間隔的負數,當然,結果可能會有小數點,把小數點略去,就是具體的月份間隔。

select month_between(to_date('2019/09/09','YYYY-MM-dd'),to_date('2019/01/09','YYYY-MM-dd')) from dual;       ----8

add_months(日期,數值);查詢的是該日期(+/-數值)月的日期

如果數值>0,改日期後數值個月的日期。

如果數值<0,改日期前數值個月的日期。

select add_months(to_date('2019/01/01','YYYY-MM-dd'),24) from dual;  -----2021/01/01
select add_months(to_date('2019/01/01','YYYY-MM-dd'),-24) from dual;  -----2017/01/01

next_day(日期,星期幾);查詢該日期的下一個星期幾的日期

select next_day(to_date('2020/05/29','YYYY-MM-dd'),'星期六') from dual;  -----2020/05/30
//2020/05/29的下一個星期六是?2020/05/30

last_day(日期);查詢該日期該月的最後一天

select last_day(to_date('2020/05/29','YYYY-MM-dd')) from dual;  ----2020-05-31
//2020/05/29 該月的最後一天是?2020-05-31

round(日期,'year'/'month');按年/月進行四捨五入

按年:月份<=06 :該日期對應年-01-01;

                    >06 :該日期對應年加一年-01-01;

按月:日<=15 :   該日期對應年-該月份-01;

           日> 15 : 該日期對應年-該月份加一月-01;(12月除外 對應年+1年-01-01)

select round(to_date('2020/05/11','YYYY-MM-dd'),'year') from dual;    ----2020-01-01
//2020/05/11按年四捨五入爲:2020/01/01

trunc(日期,'year'/'month');按年/月進行截斷

按年截斷:日期對應年-01-01

按月截斷:日期對應年-日期對應月-01

select trunc(to_date('2020/09/02','YYYY-MM-dd'),'year') from dual; -----2020-01-01
select trunc(to_date('2020/09/02','YYYY-MM-dd'),'month') from dual; -----2020-09-01

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章