ORACLE時間函式 SYSDATE 深入理解

2022-02-02 06:52:30 字數 3727 閱讀 8654

加法

select sysdate,add_months(sysdate,12) from dual; --加1年

select sysdate,add_months(sysdate,1) from dual; --加1月

select sysdate,to_char(sysdate+7,'yyyy-mm-dd hh24:mi:ss') from dual; --加1星期

select sysdate,to_char(sysdate+1,'yyyy-mm-dd hh24:mi:ss') from dual; --加1天

select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd hh24:mi:ss') from dual; --加1小時

select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual; --加1分鐘

select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual; --加1秒

減法

select sysdate,add_months(sysdate,-12) from dual; --減1年

select sysdate,add_months(sysdate,-1) from dual; --減1月

select sysdate,to_char(sysdate-7,'yyyy-mm-dd hh24:mi:ss') from dual; --減1星期

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

select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd hh24:mi:ss') from dual; --減1小時

select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual; --減1分鐘

select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual; --減1秒

oracle時間函式(sysdate)簡析

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函式 時間函式

日期函式 1 獲取當前日期和時間得函式 sysdate 獲取當前系統日期 systimestamp 獲取精確的系統時間,包含時區 to char 獲取指定格式得系統當前日期 2 獲取時區得函式 dbtimezone 返回資料庫所在的時區 sessiontimezone 返回當前會話所在的時區 3 指...

oracle 時間函式

以下的文章主要是對oracle 獲取系統日期與日期轉換函式的實際應用的介紹,以及如何正確的獲取系統日期 sysdate 以及格式化日期 to char sysdate yy mm dd hh24 mi ss 的獲取。或 to date sysdate yy mm dd hh24 mi ss 格式化數...

oracle時間函式

add months 語法 add months d,x 功能 返回日期d加上x個月後的月份。x可以是任意整數。如果結果日期中的月份所包含的天數比d日期中的 日 分量要少。即相加後的結果日期中的日分量資訊已經超過該月的最後一天,例如,8月31日加上乙個月之後得到9月31日,而9月只能有30天 返回結...