- 类别:
YEAR* / DAY* / WEEK* / MONTH / QUARTER¶
从日期或时间戳中提取相应的日期部分。
这些函数是将 DATE_PART (或 EXTRACT)函数与等效日期部分一起使用的替代方法(请参阅 支持的日期和时间部分)。
语法¶
实参¶
date_or_timestamp_expr日期、时间戳或计算结果为日期或时间戳的表达式。
返回¶
此函数返回 NUMBER 类型的值。
使用说明¶
函数名称 |
从输入日期/时间戳中提取的日期部分 |
可能的值 |
|---|---|---|
YEAR |
Year |
任何有效年份(例如 2025 年) |
YEAROFWEEK [1] |
提取的周所属的年份 |
任何有效年份(例如 2025 年) |
YEAROFWEEKISO |
使用 ISO 语义 提取的星期所属的年份 |
任何有效年份(例如 2025 年) |
DAY、DAYOFMONTH |
月中某日(数字) |
1 至 31 |
DAYOFWEEK [1] |
Day (number) of the week dictated by session parameters |
0 至 7 |
DAYOFWEEKISO |
使用 ISO 语义 的周中某日(数字) |
1 至 7 |
DAYOFYEAR |
年中某日(数字) |
1 至 366 |
WEEK , WEEKOFYEAR [1] |
年中某周(数字) |
1 至 54 |
WEEKISO |
使用 ISO 语义 的年中某周(数字) |
1 至 53 |
MONTH |
年中某月(数字) |
1 至 12 |
QUARTER |
年中某季(数字) |
1 至 4 |
[1] 结果由为 WEEK_OF_YEAR_POLICY 和/或 WEEK_START 会话参数设置的值决定。
有关 ISO 语义和参数的详细信息,请参阅 日历周和工作日。
示例¶
下方展示了函数 YEAR、QUARTER、MONTH、DAY、DAYOFWEEK 和 DAYOFYEAR 的用法。
下方展示了函数 WEEK、WEEKISO、WEEKOFYEAR、YEAROFWEEK 和 YEAROFWEEKISO 的用法。会话参数 WEEK_OF_YEAR_POLICY 设置为 1,以便年中的第一周是包含该年 1 月 1 日的周。
下方展示了函数 WEEK、WEEKISO、WEEKOFYEAR、YEAROFWEEK 和 YEAROFWEEKISO 的用法。会话参数 WEEK_OF_YEAR_POLICY 设置为指示年中的第一周是包含该年至少四天的年中第一周。在此示例中,2015 年 12 月 27 日至 2016 年 1 月 2 日这周被视为 2015 年的最后一周,而不是 2016 年的第一周。尽管此周包含 2016 年 1 月 1 日星期五,但不到一半的时间是 2016 年。
下方展示了函数 DAYOFWEEK 和 DAYOFWEEKISO 的用法。会话参数 WEEK_START 设置为指示一周从星期日开始。
以下查询中的时间戳是 2025 年 4 月 5 日,也就是星期六。DAYOFWEEK 函数在星期六返回 7,因为一周的第一天设置为星期日。DAYOFWEEKISO 函数返回 6,因为使用 ISO 语义的一周的第一天是星期一。有关 ISO 语义和 WEEK_START 参数的更多信息,请参阅 日历周和工作日。
以下示例演示如何使用函数 DAYOFWEEK 和 DAYOFWEEKISO。会话参数 WEEK_START 设置为指示一周从星期一开始。
有关更多示例,请参阅 使用日期和时间值。
有关周相关的函数(DAYOFWEEK、WEEK、WEEKOFYEAR、YEAROFWEEK 等)的更详细示例,请参阅 日历周和工作日。