date_part
函式
適用於:Databricks SQL Databricks Runtime
擷取日期、時間戳記或間隔的一部分。
語法
date_part(fieldStr, expr)
引數
-
fieldStr
:STRING
常值。 -
expr
:、DATE
TIMESTAMP
或INTERVAL
表示式。
傳回
如果 fieldStr
為 'SECOND'
,則為 DECIMAL(8, 6)
。
在其他所有情況下,為 INTEGER
。
對於 field
中,當 source
為 DATE
或 TIMESTAMP
時支援的 values:
-
'YEAR'
、 、'Y'
'YEARS'
、 、'YR'
、'YRS'
year 欄位 -
'YEAROFWEEK'
:日期時間落在的 ISO 8601 周編號年份。 例如,2005-01-02 是 2004 年第 53 周的一部分,因此結果是 2004 年 -
'QUARTER'
,'QTR'
日期時間落在年份的季度 (1 - 4) -
'MONTH'
、 、'MON'
'MONS'
、'MONTHS'
: 月份欄位 (1 - 12) -
'WEEK'
、 、'W'
'WEEKS'
ISO 8601 周以周為基礎的年份數目。 一周會被視為從星期一開始,第 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'
: ISO 8601 以星期一(1) 至星期日(7) 為日期時間的一周日期 -
'DOY'
:一年中的日期 (1 - 365/366) -
'HOUR'
、 、'H'
'HOURS'
、 、'HR'
'HRS'
小時欄位 (0 - 23 ) -
'MINUTE'
、 、'M'
'MIN'
、 、'MINS'
'MINUTES'
分鐘欄位 (0 - 59) -
'SECOND'
、 、'S'
'SEC'
、'SECONDS'
、'SECS'
秒欄位,包括小數部分
支援的 field
中的 values 在 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