0
WHERE `time` BETWEEN 'Jan 1 %' AND 'Jan 8 %' AND ...

結果

Jan 1 00:33:23
Jan 10 08:52:05

1月10日の結果を回避するにはどうすればよいですか?

%、<=などのいくつかの異なる組み合わせを試しました。

何か案は?

ありがとう

4

3 に答える 3

2
WHERE Time >= '1/1/2011' AND Time < '1/9/2011'

または、任意の年の結果が必要な場合:

WHERE DATEPART( month, Time ) = 1 AND DATEPART( day, Time ) < 9
于 2011-01-11T15:44:26.003 に答える
0

現在、このクエリでは、「between」は数字や日付で使用するように設計されているのに対し、文字列で使用するため、検索エンジンを混乱させます。

あなたの問題には2つの解決策があります:

1)「時刻」フィールドを「日付」に変換し、日付を「01-01-2010 00:00」として保存します(これは、DBに日付フィールドであることを認識させるため、最も健全なソリューションです)2)試してください:

WHERE `time` >= 'Jan 1' AND `time` < 'Jan 2'

2番目のソリューションは、2つの日付ではなく、2つの文字列を比較しているため、奇妙な結果をもたらす可能性があります。

于 2011-01-11T15:47:31.787 に答える
0

ここでは試すことができませんが、STR_TO_DATEメソッドを試してみませんか?時間フィールドを実際の日付に変更でき、その文字列比較を行う必要はありません。

WHERE STR_TO_DATE(`time`,'%d,%m,%Y') BETWEEN
'2010-01-01'
AND
'2010-01-09'

また、http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-dateを参照してください

于 2011-01-11T15:47:44.957 に答える