メインコンテンツまでスキップ
に最終更新

UTC_TIMESTAMP

説明​

UTC_TIMESTAMP 関数は、UTC タイムゾーンでの現在の日付と時刻を返します。この関数はローカルのタイムゾーンの影響を受けず、常に UTC を基準とした現在時刻を返すため、タイムゾーンが異なる環境でも一貫した時刻を取得できます。

この関数の動作は、MySQL の utc_timestamp 関数と一致します。

構文​

UTC_TIMESTAMP([`<precision>`])

パラメータ​

パラメータ説明
<precision>省略可能。[0, 9] の範囲の整数定数です。デフォルトは 0 です。

戻り値​

現在の UTC の日付と時刻を返します。

精度が 0 から 6 の場合は DATETIME(<precision>) を返します。精度が 7 から 9 の場合は TIMESTAMP_NS を返し、小数部を九桁で表示します。戻り値を数値演算に使用すると、整数形式(形式は YYYYMMDDHHmmss)に変換されます。同一のステートメント内では値は一定です。

入力が NULL の場合、または精度が範囲外の場合は、エラーが発生します。

例​

-- Current local time is UTC+8 2025-10-27 14:43:21
SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0, UTC_TIMESTAMP(5), UTC_TIMESTAMP(5) + 0;
+---------------------+---------------------+---------------------------+----------------------+
| UTC_TIMESTAMP() | UTC_TIMESTAMP() + 0 | UTC_TIMESTAMP(5) | UTC_TIMESTAMP(5) + 0 |
+---------------------+---------------------+---------------------------+----------------------+
| 2025-10-27 06:43:21 | 20251027064321 | 2025-10-27 06:43:21.88177 | 20251027064321 |
+---------------------+---------------------+---------------------------+----------------------+
SELECT UTC_TIMESTAMP(10);
-- ERROR 1105 (HY000): errCode = 2, detailMessage = Precision of UTC_TIMESTAMP must be between 0 and 9. Precision was set to: 10

SELECT UTC_TIMESTAMP(NULL);
-- ERROR 1105 (HY000): errCode = 2, detailMessage = UTC_TIMESTAMP argument cannot be NULL.