天天看點

Oracle筆記_日期相關

1、日期格式字元串(格式字元串不區分大小寫)

-/,.;: 日期字元串分隔符

yyyy(年)   mm(月) dd(日,當月第幾天)  hh24(24小時制) hh(12小時制) mi(分鐘) ss(秒)

ddd(當年第幾天)

mon(月份,英文縮寫,11月就是nov)

dy(星期幾,或者day)

D(傳回1-7,對應周日-周六,注意和DY的差別)

ww(一年中的第幾周,或者iw)

q(指定日期的第幾季度)

w(指定日期在目前月的第幾周)

AD(公元,或者A.D.)

BC(公元,或者B.C.,和AD類似)

AM(正午辨別,或者A.M.)

PM(正午辨別,或者P.M.)

2、日期類型轉字元串(to_char函數)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

3、字元串轉日期

select to_date('2019-07-01 12:00:00','yyyy-mm-dd hh24:mi:ss') from dual

4、日期取整、四舍五入

 select trunc(sysdate,'year') from dual; --截取到年(本年的第一天)

select trunc(sysdate,'month') from dual; --截取到月(本月的第一天)

select trunc(sysdate) from dual; --截取到日(今天) 

select round (sysdate,'year') from dual

select round (sysdate,'month') from dual

select round (sysdate) from dual

select round (sysdate,'day') from dual   --星期幾的四舍五入,舍入到最接近的星期日

5、日期加減運算(以 天 為機關)

select sysdate+1 from dual

select trunc(sysdate) - to_date('2019-07-01','yyyy-mm-dd') from dual

6、特殊函數

add_months(sysdate,1) 

擷取目前時間的下個月的時間,第二個參數為正,就是下個月的日期,為負,就是上n個月的日期。如果月份天數不同,忽略月份天數不同的情況,沒有31号就顯示30号,沒有30号就顯示29,依次類推。

next_day(sysdate,1)   

獲得目前日期的下一個星期幾的日期,第二個參數取值範圍1-7,對應星期日-星期六。扇面案例的含義是下一個星期日的日期。