在 MariaDB 中获取月底最后一天

本文讨论如何在 MariaDB 中使用 LAST_DAY() 函数获取月底最后一天。

发布于

如果想在 MariaDB 中,获取给定日期所在的月份的最后一天,您可以使用 LAST_DAY() 函数。

LAST_DAY() 接受一个日期值或者日期时间值作为参数。如果您传入了错误的值, LAST_DAY() 将返回 NULL

简单示例

要获取 2022 年 12 月的最后一天,您可以使用以下语句:

SELECT LAST_DAY('2022-12-01');

输出:

+------------------------+
| LAST_DAY('2022-12-01') |
+------------------------+
| 2022-12-31             |
+------------------------+

您还可以传入一个日期时间值,如下:

SELECT LAST_DAY('2022-12-01 01:01:01');

输出:

+---------------------------------+
| LAST_DAY('2022-12-01 01:01:01') |
+---------------------------------+
| 2022-12-31                      |
+---------------------------------+

在本例中,2022 年 12 月的最后一天是 2022-12-31。

获取每月的最后一天

以下语句获取 2022 年的每个月的最后一天:

SELECT
  LAST_DAY('2022-01-02') AS "01",
  LAST_DAY('2022-02-02') AS "02",
  LAST_DAY('2022-03-02') AS "03",
  LAST_DAY('2022-04-02') AS "04",
  LAST_DAY('2022-05-02') AS "05",
  LAST_DAY('2022-06-02') AS "06",
  LAST_DAY('2022-07-02') AS "07",
  LAST_DAY('2022-08-02') AS "08",
  LAST_DAY('2022-09-02') AS "09",
  LAST_DAY('2022-10-02') AS "10",
  LAST_DAY('2022-11-02') AS "11",
  LAST_DAY('2022-12-02') AS "12"\G

输出:

01: 2022-01-31
02: 2022-02-28
03: 2022-03-31
04: 2022-04-30
05: 2022-05-31
06: 2022-06-30
07: 2022-07-31
08: 2022-08-31
09: 2022-09-30
10: 2022-10-31
11: 2022-11-30
12: 2022-12-31

数据库示例

这个示例使用来自 Sakila 示例数据库中的 staff进行演示:

下面的语句获取最后更新时间所在的月份:

SELECT
  last_update,
  LAST_DAY(last_update)
FROM staff;

输出:

+---------------------+-----------------------+
| last_update         | LAST_DAY(last_update) |
+---------------------+-----------------------+
| 2006-02-15 03:57:16 | 2006-02-28            |
| 2006-02-15 03:57:16 | 2006-02-28            |
+---------------------+-----------------------+

结论

在 MariaDB 中,你可以使用 LAST_DAY() 函数获取月底最后一天。