日付と時刻の関数
次の表は、EBX®でサポートされているすべての SQL 日付および時刻関数と、それらの標準 SQL 構文を示しています。一部の関数には、オプションのパラメーターがある場合があります。それらは角括弧で囲まれています。
| 演算子の構文 | 説明と例 |
|---|---|
| CURRENT\_TIME | データ型 TIMESTAMP WITH TIME ZONE の値で、セッションタイムゾーンの現在の時刻を返します。 |
| CURRENT\_DATE | データ型 DATE の値で、セッションタイムゾーンの現在の日付を返します。 |
| CURRENT\_TIMESTAMP | データ型 TIMESTAMP WITH TIME ZONE の値で、セッションタイムゾーンの現在の日付と時刻を返します。 |
| 文字列をタイムスタンプにキャスト | EBX (UI およびエクスポートファイル) で表示される日時値はローカルタイムゾーンであるのに対し、SQL パーサーによって作成されたタイムスタンプリテラルは UTC であることに注意してください。したがって、サーバーが UTC でない場合は、この不一致を回避して期待どおりの結果を得るために、ローカルタイムゾーンでリテラルを作成する必要がある場合があります (3 番目の例を参照)。フィルターを作成するには、日時値がミリ秒の精度 (EBX UI では表示されない) かどうかも考慮する必要があります (最後の例を参照)。 SELECT COUNT(*) FROM employee WHERE lastProfileUpdateTime=TIMESTAMP'2017-06-28 18:06:12' : 0 SELECT COUNT(*) FROM employee WHERE lastProfileUpdateTime=CAST('2017-06-28 18:06:12' AS TIMESTAMP) : 0 SELECT COUNT(*) FROM employee WHERE lastProfileUpdateTime=CAST('2017-06-28 18:06:12 Europe/Paris' AS TIMESTAMP WITH LOCAL TIME ZONE) : 1 SELECT COUNT(*) FROM employee e WHERE e."ebx-metadata"."system"."update_time">=TIMESTAMP'2023-08-28 09:56:55' AND e."ebx-metadata"."system"."update_time"<TIMESTAMP'2023-08-28 09:56:56' : 1 |
| YEAR(date) | 日時値式から年の値を抽出して返します。整数を返します。 SELECT YEAR(TIMESTAMP '1971-07-20 09:34:21') : 1971 SELECT YEAR(DATE '1968-07-20') : 1968 SELECT YEAR(hiringDate) FROM employee WHERE name='Smith' : 2015 SELECT YEAR(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 2017 |
| QUARTER(date) | 日時値式から四半期の値を抽出して返します。1 から 4 までの整数を返します。 SELECT QUARTER(TIMESTAMP '1971-07-20 09:34:21') : 3 SELECT QUARTER(hiringDate) FROM employee WHERE name='Smith' : 4 SELECT QUARTER(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 2 |
| QUARTER(date) | 日時値式から月の値を抽出して返します。1 から 12 までの整数を返します。 SELECT MONTH(TIMESTAMP '1971-07-20 09:34:21') : 7 SELECT MONTH(hiringDate) FROM employee WHERE name='Smith' : 10 SELECT MONTH(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 6 |
| WEEK(date) | 日時値式から週の値を抽出して返します。1 から 53 までの整数を返します。 SELECT WEEK(TIMESTAMP '1971-07-20 09:34:21') : 29 SELECT WEEK(hiringDate) FROM employee WHERE name='Smith' : 42 SELECT WEEK(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 26 |
| DAYOFYEAR(date) | 日時値式から日付 (年単位) の値を抽出して返します。1 から 366 までの整数を返します。 SELECT DAYOFYEAR(TIMESTAMP '1971-07-20 09:34:21') : 201 SELECT DAYOFYEAR(hiringDate) FROM employee WHERE name='Smith' : 287 SELECT DAYOFYEAR(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 179 |
| DAYOFMONTH(date) | 日時値式から日 (月単位) の値を抽出して返します。1 から 31 までの整数を返します。 SELECT DAYOFMONTH(TIMESTAMP '1971-07-20 09:34:21') : 20 SELECT DAYOFMONTH(hiringDate) FROM employee WHERE name='Smith' : 14 SELECT DAYOFMONTH(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 28 |
| DAYOFWEEK(date) | 日時値式から曜日の値を抽出して返します。1 から 7 までの整数を返します。 SELECT DAYOFWEEK(TIMESTAMP '1971-07-20 09:34:21') : 3 SELECT DAYOFWEEK(hiringDate) FROM employee WHERE name='Smith' : 4 SELECT DAYOFWEEK(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 4 |
| HOUR(date) | 日時値式から時間の値を抽出して返します。0 から 23 までの整数を返します。 SELECT HOUR(TIMESTAMP '1971-07-20 09:34:21') : 9 SELECT HOUR(TIME '10:34:21') : 10 SELECT HOUR(workStart) FROM employee WHERE name='Smith' : 8 SELECT HOUR(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 16 |
| MINUTE(date) | 日時値式から分の値を抽出して返します。0 から 59 までの整数を返します。 SELECT MINUTE(TIMESTAMP '1971-07-20 09:34:21') : 34 SELECT MINUTE(TIME '10:35:21') : 35 SELECT MINUTE(workStart) FROM employee WHERE name='Smith' : 0 SELECT MINUTE(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 6 |
| SECOND(date) | 日時値式から秒の値を抽出して返します。0 から 59 までの整数を返します。 SELECT HOUR(TIMESTAMP '1969-07-20 09:34:21') : 9 SELECT SECOND(TIME '10:34:22') : 22 SELECT SECOND(workStart) FROM employee WHERE name='Smith' : 0 SELECT SECOND(lastProfileUpdateTime) FROM employee WHERE name='Smith' : 12 |
Related information