跳到主要内容

DAYOFYEAR

描述

DAYOFYEAR 函数用于计算日期或时间表达式对应的当年中天数,即该日期是当年的第几天。返回值为整数,范围从 1(1 月 1 日)到 366(闰年 12 月 31 日)。

该函数与 mysql 中的 dayofyear 函数 行为一致

别名

  • DOY

语法

DAYOFYEAR(<date_or_time_expr>)

参数

参数说明
<date_or_time_expr>参数是合法的日期表达式,支持输入 date/datetime 类型,具体 datetime 和 date 格式请查看 datetime 的转换date 的转换

返回值

返回一个整数,表示日期在当年中的天数(1-366),类型为 SMALLINT。

特殊情况:

  • 若 <date_or_time_expr> 为 NULL,返回 NULL;
  • 对于闰年的 2 月 29 日,会正确计算为当年的第 60 天。

举例


---提取 datetime 类型中的一年中的天数
select dayofyear('2007-02-03 00:00:00');
+----------------------------------+
| dayofyear('2007-02-03 00:00:00') |
+----------------------------------+
| 34 |
+----------------------------------+

---提取 date 类型中的天数
select dayofyear('2023-12-31');
+-------------------------+
| dayofyear('2023-12-31') |
+-------------------------+
| 365 |
+-------------------------+

---计算闰年中的天数
select dayofyear('2024-12-31');
+-------------------------+
| dayofyear('2024-12-31') |
+-------------------------+
| 366 |
+-------------------------+

---输入为 NULL ,返回 NULL
select dayofyear(NULL);
+-----------------+
| dayofyear(NULL) |
+-----------------+
| NULL |
+-----------------+