共用方式為


extract函式

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

傳回 fieldsource

語法

extract(field FROM source)

引數

  • field:關鍵詞,可選取應擷取的哪個部分 source
  • source:、 DATETIMESTAMPINTERVAL 表示式。

傳回

如果 fieldSECOND,則為 DECIMAL(8, 6)。 在其他所有情況下,為 INTEGER

支援的 values 當 sourceDATETIMESTAMP時的 field

  • YEAR、 、 YYEARS、 、 YRYRSyear 欄位
  • YEAROFWEEK:日期時間落在的 ISO 8601 周編號年份。 例如,2005-01-02 是 2004 年第 53 周的一部分,因此結果是 2004 年
  • QUARTERQTR日期時間落在年份的季度 (1 - 4)
  • MONTH、 、 MONMONSMONTHS: 月份欄位 (1 - 12)
  • WEEK、 、 WWEEKSISO 8601 周以周為基礎的年份數目。 一周會被視為從星期一開始,第 1 周是第一周,有 >3 天。 在 ISO 周編號系統中,1 月初的日期有可能是上一年第 52 或第 53 周的一部分,而 12 月底的日期可能是明年第一周的一部分。 例如,2005-01-02 是 2004 年第 53 周的一部分,而 2012-12-31 是 2013 年第一周的一部分
  • DAY、 、 DDAYS: 月份日期欄位 (1 - 31)
  • DAYOFWEEKDOW日期時間的星期天(1) 到星期六(7)
  • DAYOFWEEK_ISODOW_ISO: ISO 8601 以星期一(1) 至星期日(7) 為日期時間的一周日期
  • DOY:一年中的日期 (1 - 365/366)
  • HOUR、 、 HHOURS、 、 HRHRS小時欄位 (0 - 23 )
  • MINUTE、 、 MMIN、 、 MINSMINUTES分鐘欄位 (0 - 59)
  • SECOND、 、 SSECSECONDSSECS秒欄位,包括小數部分

sourceINTERVAL 時支援的 fieldvalues(不區分大小寫):

  • YEAR、 、 YYEARS、 、 YRYRS總月數 / 12
  • MONTH、 、 MONMONSMONTHS總月 % 12
  • DAY、 、 DDAYS: 間隔的天數
  • HOUR、、HHOURS、、、HR、微HRS秒包含的時數
  • MINUTE、、MMIN、、、MINSMINUTES:從微秒花費數小時后剩餘多少分鐘
  • SECOND、、SSEC、、、SECONDSSECS、花費數小時和分鐘數秒后剩餘的秒數

若要傳回一周當天的三個字母縮略字,請使用 dayname 函式。

範例

> SELECT extract(YEAR FROM TIMESTAMP '2019-08-12 01:00:00.123456');
 2019

> SELECT extract(week FROM TIMESTAMP'2019-08-12 01:00:00.123456');
 33

> SELECT extract(DAY FROM DATE'2019-08-12');
 12

> SELECT extract(SECONDS FROM TIMESTAMP'2019-10-01 00:00:01.000001');
 1.000001

> SELECT extract(MONTHS FROM INTERVAL '2-11' YEAR TO MONTH);
 11

> SELECT extract(SECONDS FROM INTERVAL '5:00:30.001' HOUR TO SECOND);
 30.001000