共用方式為


date_part 功能

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

擷取日期、時間戳記或間隔的一部分。

語法

date_part(fieldStr, expr)

參數

  • fieldStr:常 STRING 值。
  • exprDATE:、 TIMESTAMPINTERVAL 運算式。

返回

如果 為 fieldStr'SECOND' ,則為 DECIMAL(8, 6) 。 在其他所有情況下,都是 INTEGER

當 為 DATETIMESTAMPsource 支援的 值 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' 秒欄位,包括小數部分

當 (不區分大小寫) 時的支援值 fieldsourceINTERVAL

  • '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