適用対象:
Databricks SQL
Databricks Runtime
日付、タイムスタンプ、または間隔の一部を抽出します。
構文
date_part(fieldStr, expr)
引数
-
fieldStr:STRINGリテラル。 -
expr:DATE、TIMESTAMP、INTERVAL式。
戻り値
fieldStr が 'SECOND' の場合は、DECIMAL(8, 6) です。
その他のすべてのケースでは、INTEGER です。
field が source または DATE のとき、TIMESTAMP にサポートされている値:
-
'YEAR'、'Y'、'YEARS'、'YR'、'YRS': 年フィールド -
'YEAROFWEEK': datetime が属する ISO 8601 の週番号付け年。 たとえば、2005-01-02 は 2004 年の第 53 週の一部なので、結果は 2004 です -
'QUARTER'、'QTR': datetime が属する年の四半期 (1 - 4) -
'MONTH'、'MON'、'MONS'、'MONTHS': 月フィールド (1 - 12) -
'WEEK'、'W'、'WEEKS': ISO 8601 週ベースの年の数。 週の始まりは月曜日で、3 日より長い最初の週が第 1 週であるとみなされます。 ISO 週番号付けシステムでは、1 月の初めの日付を前年の第 52 週または第 53 週に含め、12 月末の日付を次の年の最初の週の一部にすることができます。 たとえば、2005-01-02 は 2004 年の第 53 週の一部ですが、2012-12-31 は 2013 年の最初の週の一部です。 -
'DAY'、'D'、'DAYS': 月フィールドの日 (1 - 31) -
'DAYOFWEEK'、'DOW': 日曜日 (1) から土曜日 (7) の datetime の曜日 -
'DAYOFWEEK_ISO'、'DOW_ISO': 月曜日 (1) から日曜日 (7) の datetime の曜日、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': 秒フィールド、小数部を含む
field が source の場合にサポートされる INTERVAL の値 (大文字と小文字を区別しない):
-
'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');
12
> 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