2

次のようなデータベースに2つの日付があります:

from_dateTime = 2013-06-12
to_dateTime   = 2013-07-10

from_dateTimeとの間のすべてのレコードを検索したいto_dateTime。私はmysqlで次のコードを使用しようとしました:

SELECT *
FROM users i
WHERE i.from_dateTime >= '2013-06-12' AND i.to_dateTime <= '2013-07-10'

しかし、それは私が期待したようには機能しません。空の結果セットが表示されるのはなぜですか?

アップデート:

from_dateTime = 2013-06-11
to_dateTime   = 2013-06-12

SQL:

SELECT * FROM users i WHERE  NOW() between i.from_dateTime AND i.to_dateTime 

NOW()であり2013-06-12 08:17:13、コマンドも私の記録を見つけることができません。

4

4 に答える 4

3

問題は、日付と日時を比較していることです。日付は真夜中に始まります。時間コンポーネントは、対応する日付よりも大きくなります。これを試して:

SELECT *
FROM users u
WHERE date(NOW()) between u.from_dateTime AND u.to_dateTime 
于 2013-06-12T04:51:43.997 に答える
1
SELECT * 
FROM users i 
WHERE cast(NOW() as date) 
      between i.from_dateTime AND i.to_dateTime

SQL フィドル

于 2013-06-12T04:55:06.300 に答える
0
select from table_name where datetime_column >= '2013-06-11' and datetime_column <= '2013-06-12'
于 2013-06-12T04:55:38.897 に答える
0

間で使用

SELECT * FROM users u where date(NOW()) between u.from_dateTime and u.to_dateTime 
于 2013-06-12T04:57:46.720 に答える