从 MariaDB 日期时间值中减去几个小时

本文实现几个从 MariaDB 日期时间值中减去几个小时的示例。

发布于

如果您需要从一个 MariaDB 日期时间之中减去 1 个或几个小时,您可以使用以下几个函数:

  • SUBTIME()
  • ADDTIME()
  • SUBDATE()
  • ADDDATE()
  • DATE_SUB()
  • DATE_ADD()

或者,您也可以直接使用加减法运算符。

以下是几个实际的案例。

示例 1: SUBTIME()

SUBTIME() 用于从给定的时间或日期时间值中减去给定的时间量。下面的语句使用 SUBTIME() 函数从给定的日期时间值中减去 2 个小时:

SELECT SUBTIME('2021-12-12 12:00:00', '02:00:00');

输出:

+--------------------------------------------+
| SUBTIME('2021-12-12 12:00:00', '02:00:00') |
+--------------------------------------------+
| 2021-12-12 10:00:00                        |
+--------------------------------------------+

下面的语句使用 SUBTIME() 函数从给定的时间值中减去 2 个小时 30 分钟:

SELECT SUBTIME('12:00:00', '02:30:00');

输出:

+---------------------------------+
| SUBTIME('12:00:00', '02:30:00') |
+---------------------------------+
| 09:30:00                        |
+---------------------------------+

示例 2: ADDTIME()

ADDTIME() 用于从给定的时间或日期时间值中加上给定的时间量。下面的语句使用 ADDTIME() 函数从给定的日期时间值中减去 2 个小时:

SELECT ADDTIME('2021-12-12 12:00:00', '-02:00:00');

输出:

+---------------------------------------------+
| ADDTIME('2021-12-12 12:00:00', '-02:00:00') |
+---------------------------------------------+
| 2021-12-12 10:00:00                         |
+---------------------------------------------+

下面的语句使用 ADDTIME() 函数从给定的时间值中减去 2 个小时 30 分钟:

SELECT ADDTIME('12:00:00', '-02:30:00');

输出:

+----------------------------------+
| ADDTIME('12:00:00', '-02:30:00') |
+----------------------------------+
| 09:30:00                         |
+----------------------------------+

示例 3: SUBDATE()

SUBDATE() 用于从给定的日期或日期时间值中减去给定的时间量。下面的语句使用 SUBDATE() 函数从给定的日期时间值中减去 2 个小时:

SELECT SUBDATE('2021-12-12 12:00:00', INTERVAL 2 HOUR);

输出:

+-------------------------------------------------+
| SUBDATE('2021-12-12 12:00:00', INTERVAL 2 HOUR) |
+-------------------------------------------------+
| 2021-12-12 10:00:00                             |
+-------------------------------------------------+

示例 4: ADDDATE()

ADDDATE() 用于从给定的日期或日期时间值中加上给定的时间量。下面的语句使用 ADDDATE() 函数从给定的日期时间值中减去 2 个小时:

SELECT ADDDATE('2021-12-12 12:00:00', INTERVAL -2 HOUR);

输出:

+--------------------------------------------------+
| ADDDATE('2021-12-12 12:00:00', INTERVAL -2 HOUR) |
+--------------------------------------------------+
| 2021-12-12 10:00:00                              |
+--------------------------------------------------+

在这个案例中,我们传入 INTERVAL -2 HOUR 表示 2 个小时,它是个负数。

示例 5: DATE_SUB()

DATE_SUB() 用于从给定的日期或日期时间值中减去给定的时间量。下面的语句使用 DATE_SUB() 函数从给定的日期时间值中减去 2 个小时:

SELECT DATE_SUB('2021-12-12 12:00:00', INTERVAL 2 HOUR);

输出:

+--------------------------------------------------+
| DATE_SUB('2021-12-12 12:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-12-12 10:00:00                              |
+--------------------------------------------------+

示例 6: DATE_ADD()

DATE_ADD() 用于从给定的日期或日期时间值中加上给定的时间量。下面的语句使用 DATE_ADD() 函数从给定的日期时间值中减去 2 个小时:

SELECT DATE_ADD('2021-12-12 12:00:00', INTERVAL -2 HOUR);

输出:

+---------------------------------------------------+
| DATE_ADD('2021-12-12 12:00:00', INTERVAL -2 HOUR) |
+---------------------------------------------------+
| 2021-12-12 10:00:00                               |
+---------------------------------------------------+

在这个案例中,我们传入 INTERVAL -2 HOUR 表示 2 个小时,它是个负数。

示例 7: 加减法运算符

MariaDB 允许您直接使用加减法运算符 - 对日期/日期时间进行计算。

下面的语句使用减法实现了 '2022-12-13 12:00:00' 减去 1 小时:

SELECT '2022-12-13 12:00:00' - INTERVAL 1 HOUR;

输出:

+-----------------------------------------+
| '2022-12-13 12:00:00' - INTERVAL 1 HOUR |
+-----------------------------------------+
| 2022-12-13 11:00:00                     |
+-----------------------------------------+

当然,您也可以使用加法运算符。并且只需要将 INTERVAL 值改为负数。

下面的语句使用加法实现了 '2022-12-13 12:00:00' 减去 1 小时:

SELECT '2022-12-13 12:00:00' + INTERVAL -1 HOUR;

输出:

+------------------------------------------+
| '2022-12-13 12:00:00' + INTERVAL -1 HOUR |
+------------------------------------------+
| 2022-12-13 11:00:00                      |
+------------------------------------------+

结论

本文演示了几种用于从指定的时间或日期时间值减去指定小时数的示例。