Loading

MySQL 常用的日期函数

两个日期相减:TIMESTAMPDIFF 函数

语法:
TIMESTAMPDIFF(unit,begin,end)

说明:
TIMESTAMPDIFF函数返回 end - begin 的结果,其中beginend是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')

posted @ 2024-12-03 20:54  拾月凄辰  阅读(71)  评论(0)    收藏  举报