Oracle 10g でこの SQL を実行した後:
SELECT SYSDATE, CURRENT_TIMESTAMP FROM DUAL
私はこの奇妙な出力を受け取ります:
時間差の原因は?サーバー時刻は SYSDATE 値と同じです
SYSDATE
SYSTIMESTAMP
はデータベースの日付とタイムスタンプを返しますがcurrent_date
、current_timestamp
は勤務先の日付とタイムスタンプを返します。
たとえば。インドから仕事をしている私は、パリにあるデータベースにアクセスしています。午後 4 時(IST):
select sysdate,systimestamp from dual;
これは、パリの日付と時刻を返します。
結果
12-MAY-14 12-MAY-14 12.30.03.283502000 PM +02:00
select current_date,current_timestamp from dual;
これにより、インドの日付と時刻が返されます。
結果
12-MAY-14 12-MAY-14 04.00.03.283520000 PM ASIA/CALCUTTA
3時半の時差にご注意ください。
SYSDATE は、データベースが存在するシステムのシステム日付を返します。
CURRENT_TIMESTAMP は、データ型 TIMESTAMP WITH TIME ZONE の値で、セッション タイム ゾーンの現在の日付と時刻を返します。
このコマンドを実行します
ALTER SESSION SET TIME_ZONE = '+3:0';
同じ結果が得られます。
SYSDATE
サーバーの日付と時刻を提供します。CURRENT_DATE
クライアント (つまり、システム) の日付と時刻を提供します。CURRENT_TIMESTAMP
クリネのデータとタイムスタンプを提供します。注: SYSDATE
- 日付のみを返します。つまり、"yyyy-mm-dd" は正しくありません。SYSDATE
時、分、秒を含むデータベース サーバーのシステム日付を返します。例えば:
SELECT SYSDATE FROM DUAL;
次のような出力が返されます: 12/15/2017 12:42:39 PM