次の方法で共有


date_part 関数

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

日付、タイムスタンプ、または間隔の一部を抽出します。

構文

date_part(fieldStr, expr)

引数

  • fieldStr: STRING リテラル。
  • expr: DATETIMESTAMPINTERVAL 式。

戻り値

fieldStr'SECOND' の場合は、DECIMAL(8, 6) です。 その他のすべてのケースで、INTEGER

sourceDATE または TIMESTAMP のとき、field にサポートされている値:

  • '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': 秒フィールド、小数部を含む

sourceINTERVAL のときに field でサポートされている値 (大文字と小文字を区別しない):

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