1.前言
最近一段时间,我在工作中经常遇到一些处理日期时间的sql,今天抽空来总结一下mysql常见的日期时间函数,希望能够帮助到大家在日常工作中更加高效的码代码,和日期时间相关的sql再也不用上网查询了。
2.获得当前日期时间函数
select now();
#2020-05-08 09:50:03
mysql中除了now()函数之外,还有其他一些函数:
select current_timestamp();
select localtime();
select localtimestamp();
#2020-05-08 09:50:03
当然了,还是建议选择now(),因为简单好记呀。
2.1 获得当前日期函数
select curdate();
select current_date();
#2020-05-08
建议选择curdata()函数。
2.2 获得当前时间函数
select curtime();
select current_time();
#10:01:00
建议选择curtime()函数。
3.日期时间的选取函数
select now();-- 日期时间2020-05-08 10:06:41
select date(now()); -- 日期2020-05-08
select time(now()); -- 时间10:06:41
select year(now()); -- 年2020
select quarter(now()); -- 季度2
select month(now()); -- 月5
select week(now()); -- 周18
select day(now()); -- 日8
select hour(now()); -- 小时10
select minute(now()); -- 分钟6
select second(now()); -- 秒41
4.日期时间的计算函数
4.1 日期时间增加一个时间间隔
select now();-- 2020-05-08 10:15:41
select date_add(now(), interval 1 day); -- 加一天,2020-05-09 10:15:41
select date_add(now(), interval 1 hour); -- 加一小时,2020-05-08 11:15:41
select date_add(now(), interval 1 minute); -- 加一分钟,2020-05-08 10:16:41
select date_add(now(), interval 1 second); -- 加一秒,2020-05-08 10:15:42
select date_add(now(), interval 1 week); -- 加一周,2020-05-15 10:15:41
select date_add(now(), interval 1 month); -- 加一月,2020-06-08 10:15:41
select date_add(now(), interval 1 year); -- 加一年,2021-05-08 10:15:41
select date_add(now(), interval -1 day); -- 减一天,2020-05-07 10:15:41
date_sub()函数,为日期减去一个时间间隔,使用方法同上date_add()。
4.2 日期时间相减函数
select datediff('2020-05-08', '2020-05-18'); -- -10
select datediff('2020-05-18', '2020-05-08'); -- 10
两个日期相减,第一个参数减去第二个参数,返回值为天数,有正亦有负。
select timediff('2020-05-08 08:08:08', '2020-05-08 00:00:00'); -- 08:08:08
select timediff('08:08:08', '00:00:00'); -- 08:08:08
两个时间相减,第一个参数减去第二个参数,返回值为时间差,注意两个参数必须同类型。
5.总结
在mysql中设计到的日期时间相关的函数还有许多,在这里我只列举了比较常用的函数,有感兴趣的小伙伴们可以去深入了解一下,关注我,持续更新工作中的小细节,mumuma~~~