1. 程式人生 > >MySql時間函式用法

MySql時間函式用法

1.當前時間-now()
select now();

2.系統當前時間-sysdate()(函式執行時動態得到的)
select SYSDATE(),now();
select now(),sleep(3),now();
select SYSDATE(),SLEEP(3),SYSDATE();

3.獲取當前時間戳函式-CURRENT_TIMESTAMP,CURRENT_TIMESTAMP()
select CURRENT_TIMESTAMP;
SELECT CURRENT_TIMESTAMP();

4.日期轉換函式-DATE_FORMAT(date,format),TIME_FORMAT(time,format)


(將制定日期轉換為時間,用於時間範圍篩選)
select DATE_FORMAT('2008-08-08 22:23:01', '%Y%m%d%H%i%s');

select TIME_FORMAT('10:41:02','%H%m%s');

5.字串轉日期-str_to_date
select STR_TO_DATE('08.09.2008 08:09:30','%m.%d.%Y %h:%i:%s');

6.日期,天數轉換函式to_days(),from_days(days)
select to_days('2008-08-08');--733627
select from_days(733628);--2008-08-09

7.日期時間計算函式
為日期增加一個時間間隔:date_add()
set @dt = now();

select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);

select date_add(@dt, interval -1 day); -- sub 1 day

8.adddate(), addtime()函式,可以用 date_add() 來替代


9.MySQL 為日期減去一個時間間隔:date_sub()
date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) |
+----------------------------------------------------------------+
| 1997-12-30 22:58:59 |

10.日期、時間相減函式datediff(date1,date2),timediff(time1,time2)
MySQL datediff(date1,date2):兩個日期相減 date1 - date2,返回天數。
select datediff('2008-08-08', '2008-08-01'); -- 7

MySQL timediff(time1,time2):兩個日期相減 time1 - time2,返回 time 差值。
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08

11.MySQL 時間戳(timestamp)轉換、增、減函式:

timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2) --

12.MySQL 時區(timezone)轉換函式
convert_tz(dt,from_tz,to_tz)

select convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00
時區轉換也可以通過 date_add, date_sub, timestampadd 來實現。

select date_add('2008-08-08 12:00:00', interval -8 hour); -- 2008-08-08 04:00:00
select date_sub('2008-08-08 12:00:00', interval 8 hour); -- 2008-08-08 04:00:00
select timestampadd(hour, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00:00