CURRENT_TIMESTAMP
構文
目的
CURRENT_TIMESTAMP
は、セッション・タイムゾーンの現在の日付および時刻をTIMESTAMP
WITH
TIME
ZONE
データ型の値で戻します。タイムゾーン・オフセットは、SQLセッションの現在のローカル時刻を反映します。精度の指定を省略した場合のデフォルトは6です。このファンクションとLOCALTIMESTAMP
との違いは、CURRENT_TIMESTAMP
は、TIMESTAMP
WITH
TIME
ZONE
の値を戻し、LOCALTIMESTAMP
はTIMESTAMP
の値を戻す点です。
オプションの引数では、precision
は、戻される時刻の値の小数秒の精度を指定します。
関連項目:
例
次の例では、CURRENT_TIMESTAMP
がセッション・タイムゾーンによって異なることを示します。
ALTER SESSION SET TIME_ZONE = '-5:0'; ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS'; SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- --------------------------------------------------- -05:00 04-APR-00 01.17.56.917550 PM -05:00 ALTER SESSION SET TIME_ZONE = '-8:0'; SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ---------------------------------------------------- -08:00 04-APR-00 10.18.21.366065 AM -08:00
CURRENT_TIMESTAMP
で書式マスクを使用する場合は、ファンクションが戻す値と書式マスクを一致させてください。たとえば、次の表の場合を考えます。
CREATE TABLE current_test (col1 TIMESTAMP WITH TIME ZONE);
ファンクションが戻す型のTIME
ZONE
の部分がマスクに含まれていないため、次の文は正常に実行されません。
INSERT INTO current_test VALUES (TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM'));
次の文では、CURRENT_TIMESTAMP
の戻り値の型と一致する正しい書式マスクが使用されています。
INSERT INTO current_test VALUES (TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM TZH:TZM'));