0

データベースからクエリを実行しています:

select * from database where id = 12345

そして、2010 年 3 月 4 日 9:16:59 AM に等しい数日を取得します。

しかし、日付を追加すると、to_date('03/04/2010','DD/MM/YYYY')

私に与える

select * from database where id = 12345
and date = to_date('03/04/2010','DD/MM/YYYY') 

まったく何もない状態でカムバックします。

ポインタはありますか?ところで、そこに時間があることは知っていますが、日だけで比較する方法がわかりません!!!

4

2 に答える 2

3

これは、日付を作成するときに時刻を暗黙的に 0:00:00 に設定し、0:00:00 が 9:16:59 と等しくないため、日付が返されないためです。

時間部分を無視するように Oracle に指示するには、次のようにします。

WHERE id = 12345
  AND trunc(date) = to_date('03/04/2010', 'DD/MM/YYYY')
于 2011-08-03T23:13:17.160 に答える
1
 WHERE id = 12345
   AND date >= TO_DATE('03/04/2010', 'DD/MM/YYYY')
   AND date <  TO_DATE('03/04/2010', 'DD/MM/YYYY') + INTERVAL '1' DAY

http://use-the-index-luke.com/sql/where-clause/obfuscation/dates

于 2011-08-03T22:30:54.590 に答える