跳到主要内容
版本:Latest-3.2

makedate

功能

根据给定的年份和天数值,构造一个日期值。

该函数从 3.1 版本开始支持。

语法

DATE makedate(INT year, INT dayOfYear);

参数说明

  • year:输入的年份,支持的数据类型为 INT。取值范围 [0,9999]。如果超出该值,返回 NULL。
  • dayOfYear:天数,支持的数据类型为 INT。为了确保语义与 dayofyear 相同,支持的取值范围为 [1,365]。年份为闰年时,取值可以为 366。其他情况返回 NULL。

返回值说明

返回一个日期值。

  • year 的取值范围为 [0,9999]。如果超出该值,返回 NULL。
  • dayOfYear 的取值必须大于等于 1 小于当年的总天数(普通年份为 365 天,闰年为 366 天)。如果超出该范围,返回 NULL。
  • 如果任一输入值为 NULL,返回 NULL。

示例

mysql> select makedate(2023,0);
+-------------------+
| makedate(2023, 0) |
+-------------------+
| NULL |
+-------------------+

mysql> select makedate(2023,32);
+--------------------+
| makedate(2023, 32) |
+--------------------+
| 2023-02-01 |
+--------------------+

mysql> select makedate(2023,365);
+---------------------+
| makedate(2023, 365) |
+---------------------+
| 2023-12-31 |
+---------------------+

mysql> select makedate(2023,366);
+---------------------+
| makedate(2023, 366) |
+---------------------+
| NULL |
+---------------------+

mysql> select makedate(9999,365);
+---------------------+
| makedate(9999, 365) |
+---------------------+
| 9999-12-31 |
+---------------------+

mysql> select makedate(10000,1);
+--------------------+
| makedate(10000, 1) |
+--------------------+
| NULL |
+--------------------+

keyword

MAKEDATE,MAKE