addweek oracle Oracle時間函式

2021-10-12 22:30:07 字數 3802 閱讀 4680

yyyy年 q季度

mm月 month月

ww當年第幾周 w本月第幾周

ddd 當年第幾天 dd當月第幾天 d當周內第幾天 dy當周內星期幾 day當周內星期幾

hh或hh12:12進製小時數 hh24:24小時制

mi:分鐘數(0~59) ss:秒數(0~59)

1、sysdate:當前日期和時間

select sysdate from dual

2、last_day():本月最後一天

select last_day(sysdate) from dual;

3、add_months(d,n):當前日期d後推n個月

select add_months(sysdate,2) from dual;

4、months_between(f,s):日期f和s間相差月數

select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual;

5、next_day(d,day_of_week):返回由"day_of_week"命名的,在變數"d"指定的日期之後的第乙個

工作日的日期。引數"day_of_week"必須為該星期中的某一天。

返回下個星期的日期,day為1-7或星期日-星期六,1表示星期日

select next_day(to_date('20050620','yyyymmdd'),1) from dual;

每週的星期五晚上23:00

select trunc(next_day(sysdate,'星期五'))+23/24 from dual;

6、current_date():返回當前會話時區中的當前日期

select current_date from dual;

7、current_timestamp():以timestamp with time zone資料型別返回當前會話時區中的當前日期

select current_timestamp from dual;

8、dbtimezone():返回時區

select dbtimezone from dual;

9、extract():找出日期或間隔值的字段值

select extract(year from add_months(sysdate,36)) " years" from dual;

10、localtimestamp()返回會話中的日期和時間

select localtimestamp from dual;

天數增減:

select (sysdate - 3) from dual;

select (sysdate + 3) from dual;

今天晚上23:00:trunc(sysdate)+23/24

trunc(sysdate)+(1440*60-1)/(1440*60):2015-06-01 23:59:59

trunc(sysdate)+1-1/86400:2015-06-01 23:59:59

增加一小時:sysdate + 1/24

增加10分鐘: 'sysdate + 10/(60*24)'

增加30秒: 'sysdate + 30/(60*24*60)'

當前時間減去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 dua

上月末天:

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

上月今天:

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

上月首天:

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

判斷上下午

if to_date(to_char(sysdate, 'hh24:mi:ss'), 'hh24:mi:ss') <

to_date('12:00:00', 'hh24:mi:ss') then

v_zblb := '上午';

else

v_zblb := '下午';

end if;

按照每週進行統計:

select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');

要找到某月中所有周五的具體日期:

select to_char(t.d,'yy-mm-dd') from ( select trunc(sysdate, 'mm')+rownum-1

as d from dba_objects where rownum < 32) t where to_char(t.d, 'mm') =

to_char(sysdate, 'mm') and trim(to_char(t.d, 'day'))

處理月份天數不定的辦法

select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual;

找出今年的天數

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual ;

閏年的處理方法

to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' )

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

to_char(number, '格式')

to_char(salary, '$99,999.99')

to_char(date, '格式') to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')

to_char(sysdate,'yyyy"年"fmmm"月"fmdd"日" hh24:mi:ss')

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

to_date(char, '格式')

to_number將字串轉換為數字

to_number(char, '格式')

日期時間轉為日期:

to_date(to_char(b.billing_date_time , 'yyyy/mm/dd'), 'yyyy-mm-dd')

to_date('2014-03-12 14:00:00','yyyy-mm-dd hh24:mi:ss')

年齡:trunc(months_between(sysdate,t.birthday)/12) floor(months_between(sysdate,b.date_of_birth)/12)

mysql add days MySQL 時間函式

a.timestampdiff 傳三個引數,第乙個時間型別如年,月,日,第二個開始時間,第三個結束時間 select test name,timestampdiff year,create time,end time y date from test table 計算時間 test name y d...

mysql sql時間函式 SQL獲取時間函式

sql獲取時間函式 datediff 引數一,引數二,引數三 引數一 year month day 引數二 比較的起始日期,預設1900 1 1 引數三 比較的日期。eg datediff year,0,getdate 表示比較0 預設1900 1 1 到當前的日期想差幾年 select datea...

mysql時間函式中文 Mysql的時間函式

1.本週內的第幾天,從週日開始 mysql select dayofweek 2015 05 25 dayofweek 2015 05 25 2 1 row in set 0.00 sec 2.本月內的第幾天 mysql select dayofmonth 2015 05 25 dayofmonth...