date_part
功能
適用于: Databricks SQL Databricks Runtime
擷取日期、時間戳記或間隔的一部分。
語法
date_part(fieldStr, expr)
參數
fieldStr
:常STRING
值。expr
DATE
:、TIMESTAMP
或INTERVAL
運算式。
返回
如果 為 fieldStr
'SECOND'
,則為 DECIMAL(8, 6)
。
在其他所有情況下,都是 INTEGER
。
當 為 DATE
或 TIMESTAMP
時 source
支援的 值 field
:
'YEAR'
、'Y'
、'YEARS'
、'YR'
、、'YRS'
:年欄位'YEAROFWEEK'
:日期時間落在的 ISO 8601 周編號年份。 例如,2005-01-02 是 2004 年第 53 周的一部分,因此結果為 2004'QUARTER'
,'QTR'
:日期時間落在年份的季 (1 - 4)'MONTH'
、'MON'
、'MONS'
、'MONTHS'
:月份欄位 (1 - 12)'WEEK'
、'W'
、'WEEKS'
:ISO 8601 周-of-week-based-year 的數目。 一周會被視為在星期一開始,而第 1 周是第一周,且有 > 3 天。 在 ISO 周編號系統中,早期 1 月日期可能屬於前一年的第 52 天或第 53 周,而 12 月的晚期日期可能是下一年第一周的一部分。 例如,2005-01-02 是 2004 年第 53 周的一部分,而 2012-12-31 是 2013 年第一周的一部分'DAY'
、、'D'
'DAYS'
:月份欄位的日期 (1 - 31)'DAYOFWEEK'
,'DOW'
:日期時間的星期一日, (1) 到星期六 (7)'DAYOFWEEK_ISO'
,'DOW_ISO'
:以星期一 (1) 到 (星期日 7 (7) 的日期時間當周 ISO 8601 日'DOY'
:一年中的日期 (1 - 365/366)'HOUR'
、'H'
、'HOURS'
、'HR'
、:'HRS'
小時欄位 (0 - 23)'MINUTE'
、'M'
、'MIN'
、、'MINS'
:'MINUTES'
分鐘欄位 (0 - 59)'SECOND'
、'S'
、'SEC'
、'SECONDS'
、:'SECS'
秒欄位,包括小數部分
當 (不區分大小寫) 時的支援值 field
source
INTERVAL
:
'YEAR'
、'Y'
、'YEARS'
、'YR'
、、'YRS'
:總月數/12'MONTH'
、'MON'
、'MONS'
、、'MONTHS'
:總月份 % 12'DAY'
、、'D'
'DAYS'
:間隔的天數部分'HOUR'
、'H'
、'HOURS'
、'HR'
、、、'HRS'
:微秒包含的小時數'MINUTE'
、'M'
、'MIN'
、'MINS'
、、、'MINUTES'
:花費數毫秒後剩餘的分鐘數'SECOND'
、'S'
、'SEC'
、'SECONDS'
、、:'SECS'
花費數小時和分鐘後剩餘的秒數
函 date_part
式與 SQL 標準 擷取 函式同義。
例如 date_part('year', CURRENT_DATE)
,相當於 extract(YEAR FROM CURRENT_DATE)
例子
> SELECT date_part('YEAR', TIMESTAMP'2019-08-12 01:00:00.123456');
2019
> SELECT date_part('Week', TIMESTAMP'2019-08-12 01:00:00.123456');
33
> SELECT date_part('day', DATE'2019-08-12');
224
> SELECT date_part('SECONDS', TIMESTAMP'2019-10-01 00:00:01.000001');
1.000001
> SELECT date_part('Months', INTERVAL '2-11' YEAR TO MONTH);
11
> SELECT date_part('seconds', INTERVAL '5:00:30.001' HOUR TO SECOND);
30.001000