7

データベースを作成していますが、フィールドに日付またはタイムスタンプを使用することについて少し混乱しています。

利用可能な日時を確認するためのトリガーをいくつか作成する必要があるため、同じフィールドを使用して 2 つの値を格納できると考えました。

私は TIMESTAMP を使用する傾向があるため、;

TO_TIMESTAMP('18/03/2012 02:24', 'DD/MM/YYYY HH24:MI')

タイムスタンプを使用すると、日付を使用するよりもうまく機能しますか? または異なるフィールドの日付と時刻。

乾杯

4

1 に答える 1

9

DATE データ型も時刻を格納するため、2 つのフィールドは必要ありません。両者の違いは、

  1. タイムスタンプが小数秒になる
  2. 2 つのタイムスタンプ (timestamp-timestamp) を差し引くと、INTERVAL データ型の回答が得られます。日付の場合、日数を表す NUMBER を取得します。
  3. タイムゾーンを保存する必要がある場合は、TIMESTAMP WITH TIME ZONE を使用できますが、日付フィールドでこれを行う方法はありません。
  4. 日付に必要な記憶域はわずかに少なくなります (タイムスタンプの 11 バイトに対して 7 バイト) (タイムスタンプの精度が > 0 の場合。それ以外の場合、タイムスタンプ(0) も 7 バイトです)

タイムスタンプ データ型はより現代的 (ASNI) ですが、DATE は Oracle でより長く使用されています。

于 2012-11-01T15:38:23.013 に答える