適用於:
Databricks SQL
Databricks Runtime
擷取日期、時間戳記或時間區間的一部分。
語法
date_part(fieldStr, expr)
引數
-
fieldStr:STRING字面值。 -
expr:DATE、TIMESTAMP或INTERVAL表示式。
退貨
如果 fieldStr 為 'SECOND',則為 DECIMAL(8, 6)。
在其他所有情況下,為 INTEGER。
當 field 為 source 或 DATE時,支援的 TIMESTAMP 值:
-
'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 週週基年份的週數。 一周會被視為從星期一開始,第 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 是 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');
12
> 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