在 MySQL中,提供了很多日期和时间函数,那么,在实际工作中,我们该如何选择?这篇文章,我们一起来聊一聊。
从整体上看,MySQL的日期和时间函数可以分为六大类:获取当前日期和时间、提取日期和时间的特定部分、格式化日期和时间、日期和时间的算术操作、提取日期的部分和Unix 时间戳相关函数等。
1. 获取当前日期和时间
获取当前日期和时间的函数包含以下几个常用函数:
(1) NOW() / CURRENT_TIMESTAMP
作用:返回当前的日期和时间。
示例:
(2) CURDATE() / CURRENT_DATE
作用:返回当前的日期。
示例:
(3) CURTIME() / CURRENT_TIME
作用:返回当前的时间。
示例:
2. 提取日期和时间的特定部分
提取日期和时间的特定部分的常用函数包含以下几个:
(1) YEAR(date)
作用:提取年份。
示例:
(2) MONTH(date)
作用:提取月份。
示例:
(3) DAY(date)
作用:提取日期中的天。
示例:
(4) HOUR(time)、MINUTE(time)、SECOND(time)
作用:分别提取时间中的小时、分钟和秒。
示例:
3. 格式化日期和时间
格式化日期和时间的常用函数包含以下几个:
(1) DATE_FORMAT(date, format)
作用:按照指定格式格式化日期/时间。
常用格式符:
- %Y 年份(四位)
- %m 月份(两位)
- %d 日(两位)
- %H 小时(24小时制)
- %i 分钟
- %s 秒
示例:
(2) STR_TO_DATE(string, format)
作用:将字符串按照指定格式转换为日期/时间类型。
示例:
4. 日期和时间的算术操作
(1) DATE_ADD(date, INTERVAL expr unit)
作用:在日期上添加指定的时间间隔。
示例:
(2) DATE_SUB(date, INTERVAL expr unit)
作用:从日期中减去指定的时间间隔。
示例:
(3) DATEDIFF(date1, date2)
作用:返回两个日期之间的天数差异。
示例:
(4) TIMESTAMPDIFF(unit, datetime1, datetime2)
作用:返回两个日期之间指定单位的差异。
单位包括:SECOND、MINUTE、HOUR、DAY、MONTH、YEAR 等。
示例:
5. 提取日期的部分
(1) EXTRACT(part FROM date)
作用:提取日期或时间的特定部分。
可提取部分:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 等。
示例:
6. Unix 时间戳相关函数
(1) UNIX_TIMESTAMP()
作用:返回当前时间的 Unix 时间戳(秒数)。
示例:
(2) FROM_UNIXTIME(unix_timestamp, format)
作用:将 Unix 时间戳转换为日期和时间格式。
示例:
7. 总结
本文我们分析了 MySQL 中常用的日期和时间函数,它们在日常工作中有广泛的使用,不过在使用中我们需要注意以下两点:
- 日期格式:确保日期和时间的格式符合 MySQL 的标准格式(如 YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS),否则可能导致函数解析错误。
- 时区设置:NOW() 和相关函数受服务器时区设置影响,确保时区配置正确以获取准确的时间。