时间操作是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');
当然时间的方法还有很多,这里只是对常用的进行列举,如果有啥没有聊到的,还是欢迎各位大佬多多指点。