oracle 日期操作 彙總

2021-05-23 22:08:21 字數 4696 閱讀 5466

oracle 日期操作 彙總

計算從今天起的第乙個星期日是的日期 select next_day(sysdate,7)   from dual

計算當前日期的年月日

select extract(year from sysdate) from dual

select extract(month from sysdate) from dual

select extract(day from sysdate) from dual

加法 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秒

本段來自csdn部落格:http://blog.csdn.net/cathysun118/archive/2008/06/10/2532330.aspx

有兩個日期資料start_date,end_date,欲得到這兩個日期的時間差(以天,小時,分鐘,秒,毫秒):

天:round(to_number(end_date - start_date))

小時:round(to_number(end_date - start_date) * 24)

分鐘:round(to_number(end_date - start_date) * 24 * 60)

秒:round(to_number(end_date - start_date) * 24 * 60 * 60)

毫秒:round(to_number(end_date - start_date) * 24 * 60 * 60 * 60)

減12小時

select sysdate s, (sysdate - to_dsinterval('0 12:00:00')) ss from dual; 

oracle 獲取當前日期及日期格式

獲取系統日期:  sysdate()

格式化日期:     to_char(sysdate(),'yy/mm/dd hh24:mi:ss)

或 to_date(sysdate(),'yy/mm/dd hh24:mi:ss)

格式化數字:      to_number

注: to_char  把日期或數字轉換為字串

to_char(number, '格式')

to_char(salary, '$99,999.99')

to_char(date, '格式')

to_date  把字串轉換為資料庫中的日期型別

to_date(char, '格式')

to_number  將字串轉換為數字

to_number(char, '格式')

返回系統日期,輸出 25-12月-09

select sysdate from dual;

mi是分鐘,輸出 2009-12-25 14:23:31

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

mm會顯示月份,輸出 2009-12-25 14:12:31

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

輸出 09-12-25 14:23:31

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

輸出 2009-12-25 14:23:31

select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual

而如果把上式寫作:

select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual

則會報錯,因為小時hh是12進製,14為非法輸入,不能匹配。

輸出 $10,000,00 :

select to_char(1000000,'$99,999,99') from dual;

輸出 rmb10,000,00 :

select to_char(1000000,'l99,999,99') from dual;

輸出 1000000.12 :

select trunc(to_number('1000000.123'),2) from dual;

select to_number('1000000.123') from dual;

轉換的格式:

表示 year 的:y 表示年的最後一位 、

yy 表示年的最後2位 、

yyy 表示年的最後3位 、

yyyy 用4位數表示年

表示month的: mm 用2位數字表示月 、

mon 用簡寫形式, 比如11月或者nov 、

month 用全稱, 比如11月或者november

表示day的:dd  表示當月第幾天 、

ddd 表示當年第幾天 、

dy  當周第幾天,簡寫, 比如星期五或者fri 、

day 當周第幾天,全稱, 比如星期五或者friday

表示hour的:hh   2位數表示小時 12進製 、

hh24 2位數表示小時 24小時

表示minute的:mi 2位數表示分鐘

表示second的:ss 2位數表示秒 60進製

表示季度的:q 一位數 表示季度 (1-4)

另外還有ww 用來表示當年第幾周 w用來表示當月第幾周。

24小時制下的時間範圍:00:00:00-23:59:59

12小時制下的時間範圍:1:00:00-12:59:59

數字格式:  9  代表乙個數字

0  強制顯示0

$  放置乙個$符

l  放置乙個浮動本地貨幣符

.  顯示小數點

,  顯示千位指示符

補充:當前時間減去7分鐘的時間

select sysdate,sysdate - interval '7' minute from dual;

當前時間減去7小時的時間

select sysdate - interval '7' hour from dual;

當前時間減去7天的時間

select sysdate - interval '7' day from dual;

當前時間減去7月的時間

select sysdate,sysdate - interval '7' month from dual;

當前時間減去7年的時間

select sysdate,sysdate - interval '7' year from dual;

時間間隔乘以乙個數字

select sysdate,sysdate - 8*interval '7' hour from dual;

含**釋:

dual偽列

dual 是 oracle中的乙個實際存在的表,任何使用者均可讀取,常用在沒有目標表的select語句塊中。

不同系統可能返回日期的格式不一樣。

返回當前連線的使用者:select user from dual;

Oracle日期操作

今天星期幾 select to char sysdate,dy from dual select to char systimestamp,day from dual 今天是本週第幾天 select to char sysdate,d from dual select to char systime...

Oracle 日期操作

select trunc sysdate to char sysdate,d 7 2 from dual select trunc sysdate to char sysdate,d 1 from dual 列出上週星期一 星期天的時間 語句分析 sysdate 系統當前時間 to char sys...

oracle日期操作

sql select sysdate from dual 選擇系統時間 sysdate 12 7月 12 sql select add months sysdate,2 from dual add months用法,操作月份 add months sys 12 5月 12 sql select to...