oracle日期常用函式記錄 user

2021-08-31 02:06:37 字數 1199 閱讀 7482

1、last_day(d) 獲得當月最後一天

select sysdate,last_day(sysdate) last_day from dual; //

select sysdate,last_day(sysdate)+1 last_day from dual;//走到下一月

2、add_months(d,n) 時間點d再加上n個月

select sysdate,add_months(sysdate,2) from dual;//加2個月,會誇年

3、next_day(d,number) 時間點d,下個星期幾的日期

星期日 = 1 星期一 = 2 星期二 = 3

星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7

select sysdate,next_day(sysdate,2) from dual;//下個星期一

4、months_between(d1,d2) 計算兩個時間點相隔的月數

select trunc(months_between(to_date('20071101','yyyymmdd'),

to_date('20070820','yyyymmdd'))) aa

from dual;

5、有關周的ww 、 iw

[color=red]ww:[/color]

每年的1月1日作為當年的第一周的第一天(不管當年的1月1日是星期幾);

比如:2004/01/01 是周四, 在oracle中被定義為2023年ww的第一周的第一天;

select to_char(to_date('20040101','yyyymmdd'),'yy:ww'),to_char(to_date('20040107','yyyymmdd'),'yy:ww'),to_char(to_date('20040108','yyyymmdd'),'yy:ww') from dual;

[color=red]iw:[/color]

就是我們平常的周演算法

以周別為「主線」 ,每年最多可以有53個周b別,但是每年至少要包含52個周別;

如果一年當中第52周別之後至當年的12月31日之間,還有大於或等於4天的話,則定為當年的第53周,否則剩餘這些天數被歸為下一年的第1周;如果在不 足52周別的話,則以下一年的時間來補;每週固定的從周一開始作為本週的第1天,到週日作為本週的第7天;比如:在oracle中 2006/01/01 依然屬於iw周別 05年的第52周的第7天

oracle 常用日期函式

d 一周中的星期幾 dd 月中的第幾天 select to char sysdate,dd as 返回本月第幾天 from dual ddd 年中的第幾天 select to char sysdate,ddd as 返回本年第幾天 from dual day 星期的名字 select to char...

Oracle常用日期處理函式

months between 兩個時間之間的月數,如下面為2011 10 10 與 2011 5 30 兩個日期之間的月數10月10日 5月30日 select months between to date 2011 10 10 yyyy mm dd to date 2011 5 30 yyyy m...

oracle 日期常用函式 日期運算

oracle 日期常用函式 日期運算 1日期運算 23 1.更改日期顯示的format 4ex.5alter session setnls date format yyyy mm dd 6階段作業已被更改 78 select sysdate from dual 910 sysdate 11 1220...