extract
功能
適用于: Databricks SQL Databricks Runtime
傳 field
source
回 。
語法
extract(field FROM source)
參數
field
:選取應該擷取哪個部分的source
關鍵字。source
DATE
:、TIMESTAMP
或INTERVAL
運算式。
返回
如果 field
為 SECOND
,則為 DECIMAL(8, 6)
。
在其他所有情況下,都是 INTEGER
。
當 為 DATE
或 TIMESTAMP
時 source
的支援值 field
:
YEAR
、Y
、YEARS
、YR
、、YRS
:年欄位YEAROFWEEK
:日期時間落在的 ISO 8601 周編號年份。 例如,2005-01-02 是 2004 年第 53 周的一部分,因此結果為 2004QUARTER
,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) 的日期時間為星期一的 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
: 秒欄位,包括小數部分
當 (INTERVAL
不區分大小寫) 時 source
的支援值 field
:
YEAR
、 、Y
YEARS
、YR
、YRS
: 總月數 / 12MONTH
、MON
、MONS
、MONTHS
: 總月份 % 12DAY
、D
、DAYS
:間隔的天數HOUR
、H
、 、HR
HOURS
、HRS
: 微秒包含的小時數MINUTE
、M
、MIN
、、MINS
、、MINUTES
:從微秒花費數分鐘後剩餘的分鐘數SECOND
、S
、SEC
、、SECONDS
、、SECS
:在花費數小時和分鐘數後剩餘的秒數
例子
> 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