Oracle Databaseでは、LOCALTIMESTAMP()
関数は、セッションタイムゾーンの現在の日付と時刻をデータ型TIMESTAMP
の値で返します。 。
CURRENT_TIMESTAMP
に似ています 、ただしCURRENT_TIMESTAMP
TIMESTAMP WITH TIME ZONE
を返します 値。
構文
構文は次のようになります:
LOCALTIMESTAMP [ (timestamp_precision) ]
オプションのtimestamp_precision
引数は、返される時間値の2分の1の精度を指定します。
引数なしで関数を呼び出す場合は、括弧を省略してください。
例
精度を指定せずに関数を呼び出す例を次に示します。
SELECT LOCALTIMESTAMP
FROM DUAL;
結果:
07/AUG/21 08:49:50.026443000 AM
この例では、システムのNLS_DATE_FORMAT
の値に基づいた形式で日付を表示します パラメータ(現在はDD/MON/RR
)。このパラメーターは、NLS_TERRITORY
から値を取得します。 パラメータ(私のものはAUSTRALIA
です )。
これらのパラメータを変更するオプションがあります(たとえば、Oracleセッションで日付形式を変更する方法を参照)。
または、TO_CHAR()
のような関数を使用することもできます 結果を別の形式で返します。
例:
SELECT TO_CHAR(LOCALTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;
結果:
2021-08-07 08:50:20
精度
精度を指定する例を次に示します。これにより、返される時間値の秒単位の精度が決まります。
SELECT LOCALTIMESTAMP(9)
FROM DUAL;
結果:
07/AUG/21 08:50:47.203717000 AM
精度引数は0から9までの数値でなければならないことに注意してください。
その範囲外の値を渡すと、次のようになります。
SELECT LOCALTIMESTAMP(10)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT LOCALTIMESTAMP(10) FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.
精度を指定せずに括弧を省略する
前述のように、LOCALTIMESTAMP
を呼び出す場合 precision
を渡さずに 引数の場合、括弧を省略する必要があります。
精度を指定せずに括弧を含めると、次のようになります。
SELECT LOCALTIMESTAMP()
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT LOCALTIMESTAMP() FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.
前の例と同じエラーが発生します。 Oracle Databaseは0から9までの精度の引数を探していますが、何も渡しませんでした。
ヌル引数
null
を渡すときにも同じエラーが発生します :
SELECT LOCALTIMESTAMP(null)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT LOCALTIMESTAMP(null) FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-30088: datetime/interval precision is out of range 30088. 00000 - "datetime/interval precision is out of range" *Cause: The specified datetime/interval precision was not between 0 and 9. *Action: Use a value between 0 and 9 for datetime/interval precision.