- カテゴリ:
コンテキスト関数 (一般)
CURRENT_TIMESTAMP¶
システム用にローカルタイムゾーンの現在のタイムスタンプを返します。
- エイリアス:
構文¶
CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )
CURRENT_TIMESTAMP
引数¶
fract_sec_precision
このオプションの引数は、時間を報告する精度を示します。たとえば、3の値は、小数点の後の3桁を使用します(つまり、ミリ秒の精度で時間を指定することを意味します)。
デフォルトの精度は9(ナノ秒)です。
有効な値の範囲は0~9です。ただし、ほとんどのプラットフォームは真のナノ秒精度をサポートしていません。取得する精度は、指定した精度よりも低い場合があります。実際には、精度は通常最大で約ミリ秒(3桁)です。
注釈
秒の小数部は、セッションの TIMESTAMP_OUTPUT_FORMAT パラメーターで明示的に設定されている場合(例:
'YYYY-MM-DD HH24:MI:SS.FF'
)にのみ表示されます。
戻り値¶
現在のシステム時刻を返します。戻り値のデータ型は TIMESTAMP_LTZ です。
使用上の注意¶
TIMEZONE パラメーターの設定は、戻り値に影響します。返されるタイムスタンプは、セッションのタイムゾーンです。
TIMESTAMP_TYPE_MAPPING パラメーターの設定は、戻り値に影響を 与えません 。
クエリは異なるコンピューティングリソース(ウェアハウス内)によって処理される可能性があるため、同時クエリ(同じ仮想ウェアハウスで処理)間の正確な時間の順序付けに戻り値を使用しないでください。
ANSI 規格に準拠するために、この関数は SQL ステートメント内で括弧なしで呼び出すことができます。
ただし、 Snowflake Scripting変数 を関数を呼び出す式(例えば、
my_var := CURRENT_TIMESTAMP();
)に設定する場合は、括弧を含める必要があります。詳細については、 コンテキスト関数の使用上の注意 をご参照ください。エイリアス SYSTIMESTAMP および GETDATE は、次の点で CURRENT_TIMESTAMP と異なります。
これらでは
fract_sec_precision
引数をサポートしていません。これらの関数は、括弧を付けて呼び出す必要があります。
例¶
時間出力形式を YYYY-MM-DD HH24:MI:SS.FF
に設定します。
ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
少数秒の精度が2に設定された現在のタイムスタンプを返します。
SELECT CURRENT_TIMESTAMP(2);
+------------------------+
| CURRENT_TIMESTAMP(2) |
|------------------------|
| 2024-04-17 15:41:38.29 |
+------------------------+
少数秒の精度が4に設定された現在のタイムスタンプを返します。
SELECT CURRENT_TIMESTAMP(4);
+--------------------------+
| CURRENT_TIMESTAMP(4) |
|--------------------------|
| 2024-04-17 15:42:14.2100 |
+--------------------------+
少数秒の精度がデフォルト(9)に設定された現在のタイムスタンプを返します。
SELECT CURRENT_TIMESTAMP;
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2024-04-17 15:42:55.130000000 |
+-------------------------------+