日付と時刻の関数
次の表は、EBX®でサポートされているすべての SQL 日付および時刻関数と、それらの標準 SQL 構文を示しています。一部の関数には、オプションのパラメーターがある場合があります。それらは角括弧で囲まれています。
演算子の構文 | 説明と例 |
CURRENT_TIME | データ型 TIMESTAMPWITH 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
|
ドキュメント > 開発者ガイド > EBX® の SQL