web-dev-qa-db-ja.com

OracleがDATE列に時間を格納するのはなぜですか?

日付列のあるテーブルがあります。 JDBCを使用してJava.util.Dateオブジェクトをテーブルに保存しました。

次のクエリを実行すると、日付と時間の値が表示されます。

select To_CHAR(departure_date,'DD-MM-YYYY HH:MI') from service

これは、日付が列にも時間を格納していることを示しています。

これは予想外です。整数型のように日付型は時間の値を破棄して小数桁を破棄しないでください?

3
Kshitiz Sharma

OracleのDATEデータ型は、ANSI DATEおよびTIMEデータ型の両方として動作します。これは、Oracleだけがその理由を知っている設計上の決定でした。

この方法でANSI SQL標準に準拠していないRDBMSは、Oracleだけではないことも付け加えておきます。

もちろん、TO_CHAR(departure_date,'DD-MM-YYYY')を使用して時間部分を削除できます。

6
Philᵀᴹ