Oracle中幾個關於日期方面的SQL例項

2021-06-22 18:15:17 字數 2657 閱讀 4830

№1:取得當前日期是本月的第幾周

sql>   select   to_char(sysdate,'yyyymmdd   w   hh24:mi:ss')   from   dual;   

to_char(sysdate,'yy   

-------------------   

20030327   4   18:16:09   

sql>   select   to_char(sysdate,'w')   from   dual;   

t   

-   

4 №2:取得當前日期是乙個星期中的第幾天,注意星期日是第一天

sql>   select   sysdate,to_char(sysdate,'d')   from   dual;   

sysdate       t   

---------   -   

27-mar-03   5  

類似:select   to_char(sysdate,'yyyy')   from   dual;   --年   

select   to_char(sysdate,'q'   from   dual;           --季   

select   to_char(sysdate,'mm')   from   dual;       --月   

select   to_char(sysdate,'dd')   from   dual;       --日   

ddd   年中的第幾天   

ww   年中的第幾個星期   

w   該月中第幾個星期   

d   週中的星期幾   

hh   小時(12)   

hh24   小時(24)   

mi   分   

ss   秒

№3:取當前日期是星期幾中文顯示:

sql>   select   to_char(sysdate,'day')   from   dual;   

to_char(sysdate,'day')   

----------------------   

星期四  

№4:如果乙個表在乙個date型別的字段上面建立了索引,如何使用

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'

№5: 得到當前的日期

select sysdate from dual;

№6: 得到當天凌晨0點0分0秒的日期

select trunc(sysdate) from dual;

-- 得到這天的最後一秒

select trunc(sysdate) + 0.99999 from dual;

-- 得到小時的具體數值

select trunc(sysdate) + 1/24 from dual;

select trunc(sysdate) + 7/24 from dual;

№7:得到明天凌晨0點0分0秒的日期

select trunc(sysdate+1) from dual;

select trunc(sysdate)+1 from dual;

№8: 本月一日的日期

select trunc(sysdate,'mm') from dual;

№9:得到下月一日的日期

select trunc(add_months(sysdate,1),'mm') from dual;

№10:返回當前月的最後一天?

select last_day(sysdate)  from dual;        

select last_day(trunc(sysdate))  from dual;  

select trunc(last_day(sysdate))  from dual;

select trunc(add_months(sysdate,1),'mm') - 1 from dual;

№11: 得到一年的每一天

select trunc(sysdate,'yyyy')+ rn -1 date0 

from 

(select rownum rn from all_objects 

where rownum<366);

№12:今天是今年的第n天

select to_char(sysdate,'ddd') from dual;

№13:如何在給現有的日期加上2年

select add_months(sysdate,24) from dual;

№14:判斷某一日子所在年分是否為潤年

select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','閏年','平年') from dual;

№15:判斷兩年後是否為潤年

select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','閏年','平年') from dual;

№16:得到日期的季度

select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;

select to_char(sysdate, 'q') from dual; 

oracle中關於日期的獲取

最近的乙個功能定時任務要求在當天凌晨2點生成前一天的資料。涉及到資料庫時間的操作,特此記錄一下,整理關於日期獲取的筆記如下 獲取當前系統的前一天日期0點到23 59 59的時間 select trunc sysdate 1 trunc sysdate 1 1 1 86400 from dual 獲取...

Oracle中日期方面的SQL例項

1 取得當前日期是本月的第幾周 www.bianceng.cn sql select to char sysdate,yyyymmdd w hh24 mi ss from dual to char sysdate,yy 20030327 4 18 16 09 sql select to char s...

oracle函式 關於日期

日期常用函式 add months,last day,next day,months between,new time,round 函式用法 add months d,n 時間點d加上n個月 示例 select sysdate,add months sysdate,1 from dual 注 sys...