MySQL 日期时间加减操作优化

1. 获取当前日期和时间

在MySQL中,可以使用以下函数来获取当前的日期和时间:

  • NOW(): 获取当前具体的日期和时间。
  • CURDATE(): 获取当前日期。
  • CURTIME(): 获取当前时间。

示例代码:

SET @dt = NOW();   -- 设置当前日期时间变量
SELECT @dt;        -- 查询变量值

image.png

2. 加减某个时间间隔

使用 DATE_ADD()DATE_SUB()函数可以对日期时间进行加减操作。

语法

DATE_ADD('某个日期时间', INTERVAL 1 时间种类名);
DATE_SUB('某个日期时间', INTERVAL 1 时间种类名);

时间种类名

  • year
  • month
  • quarter
  • week
  • day
  • hour
  • minute
  • second
  • microsecond

示例

SELECT DATE_ADD(@dt, INTERVAL 1 YEAR);   -- 加1年
SELECT DATE_ADD(@dt, INTERVAL 1 MONTH);  -- 加1月

3. 日期相减

DATEDIFF函数

DATEDIFF(date1, date2)用于计算两个日期之间的天数差。

示例代码:

SELECT DATEDIFF('2022-10-03', '2022-10-01') AS 相减之后的天数;

image.png

TIMEDIFF函数

TIMEDIFF(time1, time2)用于计算两个时间之间的差值。

示例代码:

SELECT TIMEDIFF('2022-10-03 12:30:00', '2022-10-01 12:29:30') AS 相减之后的时间;
SELECT TIMEDIFF('12:30:00', '12:29:30');

image.png

4. 注意事项

  • DATEDIFF只计算日期部分的差值,不包括时间部分。
  • TIMEDIFF计算时间差值,不包括日期部分的差值。
  • 确保日期和时间格式正确,并且使用单引号括起来。

5. 最佳实践

  • 在处理日期和时间时,确保了解每个函数的适用场景。
  • 避免在生产环境中直接修改日期时间,建议先进行测试。
  • 使用变量来存储中间结果,提高代码可读性和维护性。

通过以上优化,文章内容更加清晰、易读,并且提供了全面的MySQL日期时间加减操作指南。