MySQL DATE_SUB() 用法与实例

在 MySQL 中,DATE_SUB() 函数用于向给定的日期添加指定的时间量。

发布于

在 MySQL 中,DATE_SUB() 函数用于向给定的日期添加指定的时间量。

您可以使用 DATE_SUB() 函数获得一段时间之后或之前的日期和时间。通过指定时间单位,您可以加减任意的时间量。

语法

您可以使用以下语法:

DATE_SUB(date,INTERVAL expr unit)

date 是需要操作的时间。

expr 是一个数值,用于表示时间量。

unit 是时间量的单位。您可以使用以下单位:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

示例 1 – 基本用法

下面的示例展示了 MySQL DATE_SUB() 函数的基本用法:

SELECT DATE_SUB('2023-01-31', INTERVAL 1 DAY);

输出:

+----------------------------------------+
| DATE_SUB('2023-01-31', INTERVAL 1 DAY) |
+----------------------------------------+
| 2023-01-30                             |
+----------------------------------------+

本示例在第一个参数提供的日期上添加 1 天。

示例 2 – 日期单位

MySQL DATE_SUB() 函数您使用日期单位,比如天、周、月、年等。

SELECT
    '2023-01-31' AS 'Date',
    DATE_SUB('2023-01-31', INTERVAL 2 WEEK) AS '-2 Weeks',
    DATE_SUB('2023-01-31', INTERVAL 2 MONTH) AS '-2 Months',
    DATE_SUB('2023-01-31', INTERVAL 2 YEAR) AS '-2 Years';

输出:

+------------+------------+------------+------------+
| Date       | -2 Weeks   | -2 Months  | -2 Years   |
+------------+------------+------------+------------+
| 2023-01-31 | 2023-01-17 | 2022-11-30 | 2021-01-31 |
+------------+------------+------------+------------+

示例 3 – 时间单位

MySQL DATE_SUB() 函数您使用时间单位,比如小时、分钟、秒等。

SELECT
    '2023-01-31' AS 'Date',
    DATE_SUB('2023-01-31', INTERVAL 2 HOUR) AS '-2 Hours',
    DATE_SUB('2023-01-31', INTERVAL 2 MINUTE) AS '-2 Minutes';

输出:

+------------+---------------------+---------------------+
| Date       | -2 Hours            | -2 Minutes          |
+------------+---------------------+---------------------+
| 2023-01-31 | 2023-01-30 22:00:00 | 2023-01-30 23:58:00 |
+------------+---------------------+---------------------+