おそらく古典的な... OracleでSYSDATEのUTC値を取得する簡単なトリックをご存知ですか(8番目のバージョンでも何かが動作するのがベストです)。
今のところ、私はカスタム関数を持っています:(
乾杯、
ステファン
使用できます
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2000-03-28 11:30:00.00 -02:00') FROM DUAL;
タイムゾーンの変更も必要になる場合があります
ALTER SESSION SET TIME_ZONE = 'Europe/Berlin';
または読む
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM dual;
select sys_extract_utc(systimestamp) from dual;
ただし、Oracle 8では動作しません。
通常、私はDATE列を使用しますが、より大きくはありませんが、より正確なTIMESTAMPです。
次の例では、現在のUTC日付を日付として返します。
CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)
UTC日付での作業は、タイムゾーンの複雑さを心配する必要がないため、素晴らしいです。ユーザーへの最終的な表示のみがオフセットまたはその他のトラブルを必要とします。
Sysdateを含む日付だけでなくタイムスタンプが必要な場合は、systimestampを使用してタイムゾーンを指定できます。
select systimestamp at time zone 'UTC' from dual
出力:29-AUG-17 06.51.14.781998000 PM UTC
私は使用しています:
SELECT CAST(SYSTIMESTAMP AT TIME ZONE 'UTC' AS DATE) FROM DUAL;
それは私のためにうまく機能しています。