欢迎访问宙启技术站
智能推送

MySQL 日期时间加减的示例代码

发布时间:2023-05-15 14:13:00

MySQL是一种开源的关系型数据库管理系统,我们经常需要进行日期时间操作,例如时间加减,使用MySQL的内置函数可以方便地实现。本文将介绍MySQL中日期时间加减的示例代码。

1.使用DATE_ADD()函数进行日期加减

DATE_ADD()函数可以将一个日期加上一个时间间隔,使用方法如下:

SELECT DATE_ADD('2020-06-10', INTERVAL 1 DAY) as '加1天',
       DATE_ADD('2020-06-10', INTERVAL 1 MONTH) as '加1个月',
       DATE_ADD('2020-06-10', INTERVAL 1 YEAR) as '加1年';

输出结果如下:

+------------+------------+------------+
| 加1天      | 加1个月     | 加1年       |
+------------+------------+------------+
| 2020-06-11 | 2020-07-10 | 2021-06-10 |
+------------+------------+------------+

上述代码中,我们可以以年、月、日或者小时等为单位指定间隔。例如:

SELECT DATE_ADD('2020-06-10', INTERVAL 2 HOUR) as '加两小时',
       DATE_ADD('2020-06-10', INTERVAL 3 MINUTE) as '加三分钟',
       DATE_ADD('2020-06-10', INTERVAL 30 SECOND) as '加30秒';

输出结果如下:

+---------------------+---------------------+---------------------+
| 加两小时           | 加三分钟           | 加30秒            |
+---------------------+---------------------+---------------------+
| 2020-06-10 02:00:00 | 2020-06-10 00:03:00 | 2020-06-10 00:00:30 |
+---------------------+---------------------+---------------------+

2.使用DATE_SUB()函数进行日期加减

DATE_SUB()函数和DATE_ADD()函数类似,不过它是用来减去一个时间间隔的。使用方法也类似:

SELECT DATE_SUB('2020-06-10', INTERVAL 1 DAY) as '减1天',
       DATE_SUB('2020-06-10', INTERVAL 1 MONTH) as '减1个月',
       DATE_SUB('2020-06-10', INTERVAL 1 YEAR) as '减1年';

输出结果如下:

+------------+------------+------------+
| 减1天      | 减1个月     | 减1年       |
+------------+------------+------------+
| 2020-06-09 | 2020-05-10 | 2019-06-10 |
+------------+------------+------------+

3.使用TIMESTAMPADD()函数进行日期加减

TIMESTAMPADD()函数也可以用来进行日期加减,但是它有一个不同于DATE_ADD()函数的优点,就是它可以通过秒来指定间隔。使用方法如下:

SELECT TIMESTAMPADD(DAY, 1, '2020-06-10') as '加1天',
       TIMESTAMPADD(MONTH, 1, '2020-06-10') as '加1个月',
       TIMESTAMPADD(YEAR, 1, '2020-06-10') as '加1年',
       TIMESTAMPADD(SECOND, 1000, '2020-06-10 12:00:00') as '加1000秒';

输出结果如下:

+------------+------------+------------+---------------------+
| 加1天      | 加1个月     | 加1年       | 加1000秒           |
+------------+------------+------------+---------------------+
| 2020-06-11 | 2020-07-10 | 2021-06-10 | 2020-06-10 12:16:40 |
+------------+------------+------------+---------------------+

上述代码中,我们使用DAY、MONTH、YEAR、SECOND来指定时间间隔的单位。

4.使用TIMESTAMPDIFF()函数计算时间间隔

如果我们需要计算两个日期之间的时间间隔,可以使用TIMESTAMPDIFF()函数。使用方法如下:

SELECT TIMESTAMPDIFF(DAY, '2020-06-10', '2020-07-10') as '相差天数',
       TIMESTAMPDIFF(MINUTE, '2020-06-10 12:00:00', '2020-06-10 12:10:00') as '相差分钟数',
       TIMESTAMPDIFF(SECOND, '2020-06-10 12:00:00', '2020-06-10 12:00:30') as '相差秒数';

输出结果如下:

+------------+-------------+------------+
| 相差天数   | 相差分钟数  | 相差秒数   |
+------------+-------------+------------+
|         30 |          10 |         30 |
+------------+-------------+------------+

上述代码中,我们需要指定时间间隔的单位(DAY、MINUTE、SECOND等)。函数的 个参数是较大的日期,第二个参数是较小的日期,函数会返回它们之间的时间间隔。

总结

本文介绍了MySQL中日期时间加减的示例代码,包括使用DATE_ADD()、DATE_SUB()和TIMESTAMPADD()函数进行日期加减,以及使用TIMESTAMPDIFF()函数计算时间间隔。这些函数可以帮助我们在数据库中方便地进行日期时间操作。