GBase 8a如何将dayofyear的天数值转化为对应的日期

通过dayofyear函数返回指定日期是该年的第几天,那如何从这个天数数值逆向获得该日期呢?本文介绍转化的方法。

dayofyear介绍

该函数返回的数字是日期所在年的第几天,比如

gbase> select dayofyear('2021-02-01');
+-------------------------+
| dayofyear('2021-02-01') |
+-------------------------+
|                      32 |
+-------------------------+
1 row in set (Elapsed: 00:00:00.00)

详细介绍请参考:GBase 8a和天day有关的函数使用和样例汇总

从数字转化成日期的方法

首先参数有年:year, 天数 days. 可以从这一年的1月1日开始,增加days-1天即可得到期望的日期。

用MAKEDATE(year,dayofyear)函数

gbase> select makedate(2021,32);
+-------------------+
| makedate(2021,32) |
+-------------------+
| 2021-02-01        |
+-------------------+
1 row in set (Elapsed: 00:00:00.00)

详情请参考 GBase 8a和天day有关的函数使用和样例汇总

用date_add函数

根据年,构造这一年的第一天。然后用date_add增加天数减一。

gbase> select date_add(concat('2021','-01-01'),interval 365-1 day);
+------------------------------------------------------+
| date_add(concat('2021','-01-01'),interval 365-1 day) |
+------------------------------------------------------+
| 2021-12-31 00:00:00                                  |
+------------------------------------------------------+
1 row in set (Elapsed: 00:00:00.00)