MySQL 常用的日期函数
两个日期相减:TIMESTAMPDIFF 函数
语法:
TIMESTAMPDIFF(unit,begin,end)
说明:
TIMESTAMPDIFF函数返回 end - begin 的结果,其中begin和end是DATE或DATETIME表达式。
unit 参数是确定end - begin的结果的单位,表示为整数。 以下是有效单位:
| 取值 | 含义 |
|---|---|
| MICROSECOND | 毫秒 |
| SECOND | 秒 |
| MINUTE | 分钟 |
| HOUR | 小时 |
| DAY | 天 |
| WEEK | 星期 |
| MONTH | 月 |
| QUARTER | 季度 |
| YEAR | 年 |
注意函数的返回值:
end - begin 结果为 result,则:
- result 位于 [0,1) ,则返回0
- result 位于 [1,2) ,则返回1
- 以此类推...
例子:
-- 返回0
select timestampdiff(day, '2021-10-05 10:00:00', '2021-10-06 09:00:00')
-- 返回1
select timestampdiff(day, '2021-10-05 10:00:00', '2021-10-06 11:00:00')
日期加减时间间隔:TIMESTAMPADD 函数
语法:
TIMESTAMPADD(unit, interval, datetime)
说明:
TIMESTAMPADD 函数将指定的时间间隔 interval 加到一个日期时间值上并返回结果。
- interval 为负数时,表示减去这个间隔。
- 如果任何一个参数为 NULL,
TIMESTAMPADD函数将返回 NULL。
unit 同 TIMESTAMPDIFF 函数。
例子:
-- 结果:2022-05-13
SELECT TIMESTAMPADD(day, 3, '2022-05-10')
-- 结果:2022-05-06
SELECT TIMESTAMPADD(day, -4, '2022-05-10')
日期格式化:DATE_FORMAT
语法:
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
常用格式有:
| 取值 | 含义 |
|---|---|
| %Y | 年(四位) |
| %m | 月(两位) |
| %d | 日(两位) |
| %H | 小时(24小时制) |
| %i | 分钟 |
| %s | 秒 |
-- 结果:2024-12-03 21:01:18
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
-- 结果:2021-02
SELECT DATE_FORMAT('2021-02-26 10:47:50', '%Y-%m')
Unix时间戳和日期互转:from_unixtime 和 unix_timestamp
Unix时间戳转日期:from_unixtime(unix_timestamp, format)
日期转Unix时间戳:unix_timestamp(date)
这里的UNIX时间戳是10位的,如果是13位需要除1000。
format 规定日期/时间的输出格式。格式同 DATE_FORMAT函数。如果format为空默认会使用%Y-%m-%d %H:%i:%s的格式
例子:
-- 结果:2020-06-19 05:20:00
SELECT FROM_UNIXTIME(1592515200)
-- 结果:2020-06-19 05:20:00
SELECT FROM_UNIXTIME(1592515200, '%Y-%m-%d %H:%i:%s')
-- 结果:1592515200
select UNIX_TIMESTAMP('2020-06-19 05:20:00')

浙公网安备 33010602011771号