oracle 日期時間函式例項大全

2021-06-22 03:48:03 字數 3605 閱讀 6715

一些常用 oracle 的日期時間函式,分享給大家。

**:一、常用日期資料格式

1. 獲取年的最後一位, 兩位, 三位, 四位

select to_char(sysdate,'y') from dual; -- 獲取年的最後一位

select to_char(sysdate,'yy') from dual; -- 獲取年的最後兩位

select to_char(sysdate,'yyy') from dual; -- 獲取年的最後三位

select to_char(sysdate,'yyyy') from dual; -- 獲取年的最後四位

2. 獲取當前季度

select to_char(sysdate,'q') from dual; -- 1 ~ 3月為第一季度, 2表示第二季度。

3. 獲取月份數

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

www.jbxue.com

4. 獲取月份的羅馬表示

select to_char(sysdate,'rm') from dual; -- 五月為v

5. 獲取用9個字元長度表示的月份名

select to_char(sysdate,'month') from dual; -- 五月為5月

6. 獲取當年第幾周

select to_char(sysdate,'ww') from dual; -- 2023年5月20日為2023年第20周

7. 獲取本月第幾周

select to_char(sysdate,'w') from dual; -- 2023年5月20日為5月第3周

8. 獲取當年第幾天

select to_char(sysdate,'ddd') from dual; -- 2023年5月20日為2023年第140天

9. 獲取當月第幾天

select to_char(sysdate,'dd') from dual; -- 2023年5月20日為5月第20天

10. 獲取一周第幾天

select to_char(sysdate,'d') from dual; -- 2023年5月20日為一周第三天( 從週日算起 )

11. 獲取中文的星期

select to_char(sysdate,'dy') from dual; -- 2023年5月20日為星期二

12. 獲取12進製小時數

select to_char(sysdate,'hh') from dual; -- 22:36分用12小時制計時為10點

13. 獲取24進製小時數

select to_char(sysdate,'hh24') from dual; -- 22:36分用24小時制計時為22點

二、常用時間函式

1. trunc(d, [ ? ])

select sysdate s1, -- 返回當前日期,有時分秒 

trunc(sysdate) s2, -- 返回當前日期,無時分秒 

trunc(sysdate, 'year') year, -- 返回當前年的1月1日,無時分秒 

trunc(sysdate, 'month') month, -- 返回當前月的1日,無時分秒 

trunc(sysdate, 'day') day, -- 返回當前星期的星期天,無時分秒 

trunc(sysdate, 'q') quarter, -- 返回當前季度的1日,無時分秒 

trunc(sysdate, 'd') week -- 返回當前星期的星期天,無時分秒 

from dual

2. round(d, [?]) 捨入到最接近的日期 www.jbxue.com

select sysdate s1, 

round(sysdate) s2, 

round(sysdate, 'year') year, -- 捨入到最接近的年 2014/1/1 

round(sysdate, 'month') month, -- 捨入到最接近的月 2014/6/1 

round(sysdate, 'day') day -- 捨入到最接近的星期日 2014/5/18 

from dual

3. last_day(d) 獲取包含d的月最後一天的日期

select last_day(sysdate) from dual; -- 獲取本月最後一天: 2014/5/31 22:46:01 

4. add_months(d, n) 日期d往後推n個月

select add_months(sysdate,2) from dual; -- 日期往後推2個月: 2014/7/20 22:49:36

5. next_day(d, day)

select next_day(sysdate,2) from dual; -- 日期sysdate之後的第一周中, 指定星期的第2天是什麼日期

www.jbxue.com

6. months_between(f,s) 日期f和s間相差月數

select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual; -- 85.2889874551971

7. 獲取兩個日期間的天數

select floor(sysdate - to_date('20140405','yyyymmdd')) from dual;

三、綜合用法

1. 獲取上個月最後一天

select to_char(add_months(last_day(sysdate),-1),'yyyy-mm-dd') lastday from dual;

2. 獲取上個月的今天

select to_char(add_months(sysdate,-1),'yyyy-mm-dd') pretoday from dual;

3. 獲取上個月的第一天

select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-mm-dd') firstday from dual;

4. 獲取某月中所有周五的具體日期 www.jbxue.com

select to_char(b.a, 'yy-mm-dd') 

from (select trunc(sysdate, 'mm') + rownum - 1 a 

from dba_objects 

where rownum < 32) b 

where to_char(b.a, 'day') = '星期五';

5. 查詢2002-02-28至2002-02-01間除了星期一和七的天數

select count(*) 

from (select rownum - 1 row_num 

from all_objects 

where rownum <= to_date('2002-02-28', 'yyyy-mm-dd') - 

to_date('2002-02-01', 'yyyy-mm-dd') + 1) 

where to_char(to_date('2002-02-01', 'yyyy-mm-dd') + row_num - 1, 'd') not in('1', '7'

ORACLE 日期時間處理函式

to char 是把日期或數字轉換為字串 to date 是把字串轉換為資料庫中得日期型別轉換函式 to number 將字元轉化為數字 to char 使用to char函式處理數字 to char number,格式 to char salary,99,999.99 使用to char函式處理日...

ORACLE日期時間函式大全 一

oracle日期時間函式大全 一 2010 05 11 13 35 select to date 2004 05 07 13 23 44 yyyy mm dd hh24 mi ss from dual 2.select to char to date 222,j jsp from dual 顯示tw...

oracle 的時間日期轉換函式

1.有sysdate轉換後的日期的例子總結 select to char sysdate,yyyy mm dd hh24 mi ss today date,今天帶時分秒的 sysdate to date 1970 01 01 yyyy mm dd 86400 8 3600 todaytosecond...