共用方式為


date_part函式

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

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

語法

date_part(fieldStr, expr)

引數

  • fieldStrSTRING 常值。
  • expr:、 DATETIMESTAMPINTERVAL 表示式。

傳回

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

對於 field 中,當 sourceDATETIMESTAMP時支援的 values:

  • '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'秒欄位,包括小數部分

支援的 field 中的 values 在 sourceINTERVAL 且不區分大小寫時:

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