50

おそらく古典的です...OracleでSYSDATEのUTC値を取得する簡単なトリックを知っていますか(8番目のバージョンでも何かが機能するようにするのが最善です)。

今のところ私はカスタム関数を持っています:(

乾杯、

ステファン

4

5 に答える 5

50

使用できます

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;
于 2009-07-21T08:14:51.437 に答える
45
select sys_extract_utc(systimestamp) from dual;

ただし、Oracle8では機能しません。

于 2009-07-21T08:16:52.040 に答える
29

通常、私はDATE列を使用しますが、一部の回答で使用される、より大きくはより正確なTIMESTAMPを使用します。

以下は、現在のUTC日付をその日付(DATE)として返します。

CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)

_UTC私はよくこのような日付を保存しますが、通常は開発者がわかりやすいようにフィールド名がで終わります。これにより、ユーザーのクライアントによる直前の変換まで、タイムゾーンの複雑さを回避できます。Oracleは一部のデータ型でタイムゾーンの詳細を格納できますが、これらのタイプはDATEよりも多くの表スペースを必要とし、元のタイムゾーンの知識は必ずしも必要ではありません。

于 2013-07-24T22:16:29.433 に答える
7

私が使用しているもの:

SELECT CAST(SYSTIMESTAMP AT TIME ZONE 'UTC' AS DATE) FROM DUAL;

それは私にとってはうまくいっています。

于 2018-04-16T18:08:22.543 に答える
5

sysdateの日付だけでなくタイムスタンプが必要な場合は、systimestampを使用してタイムゾーンを指定できます。

select systimestamp at time zone 'UTC' from dual

出力:29-AUG-17 06.51.14.781998000 PM UTC

于 2017-08-29T18:51:27.680 に答える