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 |
+--------------------+