MariaDB 日期和时间单位

发布于

以下是可以在MariaDB中使用的日期和时间单位的完整列表。

| 单位 | 描述 | | 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 | 年-月 |

在对日期执行算术运算时,这些运算符可以与 and 运算符一起使用,具有 、、、、 和 等函数。+``-ADDDATE()SUBDATE()DATE_ADD()DATE_SUB()EXTRACT()TIMESTAMPADD()TIMESTAMPDIFF()

它们也可以在 和 函数的子句中使用。ON SCHEDULE``CREATE_EVENT()``ALTER_EVENT()

包含下划线的时间单位是复合单位。它们由多个基本时间单位组成。这些是一种一次性指定多个单位的速记方法。每个单元都可以用任何标点符号分隔。

例子

下面是向日期时间表达式添加小时的示例:

SELECT '2021-05-31 10:00:00' + INTERVAL 1 HOUR;

输出:

+-----------------------------------------+
| '2021-05-31 10:00:00' + INTERVAL 1 HOUR |
+-----------------------------------------+
| 2021-05-31 11:00:00                     |
+-----------------------------------------+

在这个示例中,我们使用运算符来执行加法。+

日期时间函数

日期和时间单位可以与各种日期函数一起使用。

这是函数:DATE_ADD()

SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR);

输出:

+--------------------------------------------------+
| DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-31 11:00:00                              |
+--------------------------------------------------+

复合单元

下面是使用复合单位的示例:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";

输出:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-03 16:25:00 |
+---------------------+---------------------+---------------------+

整数可以用任何标点字符分隔。因此,我们可以用句点替换冒号以获得相同的结果:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";

输出:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-03 16:25:00 |
+---------------------+---------------------+---------------------+