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
 

猜你喜欢

转载自blog.csdn.net/qq_29653517/article/details/83269997