extract
函式
適用於:Databricks SQL Databricks Runtime
傳回 field
的 source
。
語法
extract(field FROM source)
引數
-
field
:關鍵詞,可選取應擷取的哪個部分source
。 -
source
:、DATE
TIMESTAMP
或INTERVAL
表示式。
傳回
如果 field
為 SECOND
,則為 DECIMAL(8, 6)
。
在其他所有情況下,為 INTEGER
。
支援的 values 當 source
為 DATE
或 TIMESTAMP
時的 field
:
-
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
秒欄位,包括小數部分
當 source
是 INTERVAL
時支援的 field
values(不區分大小寫):
-
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
、花費數小時和分鐘數秒后剩餘的秒數
若要傳回一周當天的三個字母縮略字,請使用 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