date_part
関数
適用対象: Databricks SQL Databricks Runtime
日付、タイムスタンプ、または間隔の一部を抽出します。
構文
date_part(fieldStr, expr)
引数
fieldStr
:STRING
リテラル。expr
:DATE
、TIMESTAMP
、INTERVAL
式。
返品
fieldStr
が 'SECOND'
の場合は、DECIMAL(8, 6)
です。
その他のすべてのケースで、INTEGER
。
source
が DATE
または 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'
: 秒フィールド、小数部を含む
source
が INTERVAL
のときに 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