mysql 日期 加减 now() date_add() datediff()
select now(), -- 日期函数 + 时间函数sysdate(), -- 日期函数 + 时间函数curdate(), -- 日期函数curtime(); -- 时间函数
年-月-日 %Y-%m-%d
时:分:秒 %H:%i:%S
date_add()
select now(),date_add(now(), interval 1 year) 明年,date_add(now(), interval 1 day) 明天,date_add(now(), interval 1 hour) 一小时后,-- 复杂的,敲的时候,看代码提示即可date_add(now(), interval '01:15' hour_minute) 一小时十五分钟后,date_add(now(), interval '01:15:30' hour_second) 一小时十五分三十秒后,date_add(now(), interval '1 01:15:30' day_second) 一天一小时十五分三十秒后,date_sub(now(), interval 1 year) 前年 -- 格式同上from dual;
datediff()
select datediff('2021-01-02', '2021-01-01') date_diff, -- 1timediff('10:20:30', '08:10:15') time_diff, -- 02:10:15-- 支持标准日期参数timestampdiff(day, '2021-01-01', '2021-01-02') timestamp_diff,timestampdiff(minute, '2021-01-01 08:10:15', '2021-01-02 10:20:30') timestamp_diff2from dual;
now()和sysdate()
相同点:都是 日期 + 时间 格式
不同点:(1) now() 在 '执行开始时' 值就得到了
(2) sysdate() 在函数执行时 '动态获取'
select now(), sleep(3), now();
-- 值一致
2023-04-17 01:00:00 0 2021-01-18 01:00:00
select sysdate(), sleep(3), sysdate();
-- 值不同
2023-04-17 01:00:00 0 2021-01-18 01:00:03
UTC
1. 世界协调时间 UTC: Universal Time Coordinated
2. 我国位于 '东八时区',所以本地时间 = UTC 时间 + 8 小时
(1) UTC 时间在业务涉及多个国家和地区的时候,非常有用
select now(), -- 2023-04-17 16:08:54utc_date, -- 2023-04-17utc_time, -- 08:08:54utc_timestamp -- 2023-04-17 08:08:54from dual;
Mysql 日期函数详解(now、date_add、datediff )