时间函数

145 阅读2分钟

时间操作是MySQL当中的一大热点操作,好多查询需要基于时间进行排序,筛选,在聊时间查询之前,首先要知道mysql提供了很多时间计算的方法,这些方法在进行时间操作的时候可以提供很大的便利,来看看那些常用的方法。

当前时间

大部分的使用场景都需要获取当前时间作为前置,mysql提供了获取当前时间的方法,看看常用的三种:

方法描述
now当前时间,
curdate当前日期,年月日
curtime当前时间,时分秒

可以通过一个简单的语句来展示一下

select now(),curdate(),curtime();

这里注意,一定要区分data(数据) 和 date(时间),因为我有一个朋友,他总是...

时间格式化

mysql也提供了对时间字符串进行格式化的方法

方法描述
date返回字符串当中的日期
time返回字符串当中的时间
year返回字符串当中的年份
month返回字符串当中的月份
day返回字符串当中的日
hour返回字符串当中的小时
minute返回字符串当中的分钟
second返还字符串当中的秒
week返回字符串当中的周

时间计算

方法描述
date_add加时间
date_sub减时间

描述的不是很好,举个例子:

mysql> select date_add("1993-05-01 11:12:13",interval 1 year);
+-------------------------------------------------+
| date_add("1993-05-01 11:12:13",interval 1 year) |
+-------------------------------------------------+
| 1994-05-01 11:12:13                             |
+-------------------------------------------------+
1 row in set (0.00 sec)
​
mysql> select date_sub("1993-05-01 11:12:13",interval 1 year);
+-------------------------------------------------+
| date_sub("1993-05-01 11:12:13",interval 1 year) |
+-------------------------------------------------+
| 1992-05-01 11:12:13                             |
+-------------------------------------------------+
1 row in set (0.00 sec)
​

时间转换

当然mysql也提供了各种时间格式的转换

方法描述
unix_timestamp字符串格式时间转换为时间戳
from_unixtime时间戳转换为字符串格式时间
select UNIX_TIMESTAMP('2023-03-23 11:12:13');
select from_unixtime('1679541133');

当然时间的方法还有很多,这里只是对常用的进行列举,如果有啥没有聊到的,还是欢迎各位大佬多多指点。