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