-2

基本的に次のように、日付を比較するSQLステートメントがあります。

date1=date2

タイムスタンプが異なるため、 date 1 == 08/10/2013 12:00 および date2 == 08/10/2013 13:00 の場合、問題は結果セットが返されないことです。タイムスタンプを無視してこれを行うにはどうすればよいですか?

ありがとう

4

4 に答える 4

2

多くのデータベースでは、これは機能します:

trunc(date1) = trunc(date2)

これにより、日付/時刻の値が切り捨てられ、日付だけが残ります。これは、日付フィールドを使用する Oracle および MySQL で機能する可能性があります。ただし、データベースとフィールドのタイプ (タイムスタンプと日付または日時) によって異なります。

于 2013-10-08T18:07:49.970 に答える
0

SQL 2008 以降を想定

WHERE cast(date1 as date) = cast(date2 as date)
于 2013-10-08T22:01:57.477 に答える
0

2 つを比較しますが、次のようにDate()を使用します。

WHERE DATE(date1) = DATE(date2);

ただし、構文は、使用しているデータベースによって異なる場合があります。

于 2013-10-08T18:07:36.657 に答える
0

別のオプション (SQL Server を使用している場合)

WHERE DateDiff(day, date1, date2) = 0
于 2013-10-08T20:40:03.540 に答える