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...