2011-11-11 4 views
0

これは私がそれはちょうど0の結果を返す値なぜ私のLIKEクエリでmySQLは0の結果を返しますか?

order_datetime 
2011-11-11 02:07:07 
2011-11-11 01:07:07 
2011-11-11 00:07:07 
2011-11-11 11:07:07 

と、すでにレコードを持っている私のクエリ

SELECT * FROM `orders` WHERE `order_datetime` LIKE '2011-11-11' LIMIT 0 , 30 

です。明らかに、私は時間の部分を常に検索したいとは思っていません。私はそれらの中に2011-11-11のすべてのレコードを選択したいだけです。

答えて

4

を意味します。

SELECT * FROM `orders` WHERE DATE(`order_datetime`) = '2011-11-11' LIMIT 0 , 30 
+0

なぜ単純ではなくLIKEですか? – Nanocom

+0

ああ、そうです。編集されました。 – riha

+0

私はこれが最良の解決策であることを発見しました。 AND MONTH(order_datetime)= '"$ month。"' AND DAY(order_datetime)= '' $ day '' '$ day' '' "$日。" "); - さらにstrtotime()を使用してそれを破った。ありがとう – TheBlackBenzKid

-1

Likeは、ワイルドカード%または?と一緒に使用してください。あなたの例では、要求は

SELECT * FROM `orders` WHERE `order_datetime` LIKE '%2011-11-11%' LIMIT 0 , 30 

%「任意の文字、任意の回数」

?を意味する必要がありますorder_datetimeはDATETIMEフィールドである場合は、「任意の文字、正確に1時間」

+0

誰もがdownvotingを説明していますか? :) – J0HN

+1

日時フィールドで文字列検索を使用するのが遅く、不要です。日付の操作のために作られた関数を使うだけです。 – JJJ

関連する問題