- ベストアンサー
MySQL日付検索で0000-00-00 00:00:00を除外する方法
- MySQLの日付検索で、0000-00-00 00:00:00という値を除外する方法について教えてください。
- 試したSQL文では、検索結果が0件になってしまいます。
- どのような条件を設定すれば、0000-00-00 00:00:00を除外した検索結果を得ることができるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 そもそも「hizuke」の型は??? SQL見てると「DATE(hizuke)」ってやってるのに、「<= '20100505'」って・・・。 1.「hizuke」が「datetime」 SELECT * FROM user_tbl WHERE hizuke <= DATE('20100505') AND hizuke > 0 とか・・・。 2.「hizuke」が「datetime」じゃない SELECT * FROM user_tbl WHERE DATE(hizuke) <= DATE('20100505') AND hizuke > 0 とか、 SELECT * FROM user_tbl WHERE hizuke <= '20100505' AND hizuke > 0 とか・・・。
その他の回答 (2)
- moousi
- ベストアンサー率70% (21/30)
SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') and DAYOFMONTH(hizuke); DAYOFMONTHは、日付に扱いにならないデータをまとめて弾いてくれるので便利です。
お礼
DAYOFMONTH を使い自分の望んだ検索結果になりました。 DAYOFMONTHは日付を抜き出したりすることもできるのですね。 教えていただきありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
開始日をダミーでいれればよいのでは? SELECT * FROM user_tbl WHERE hizuke BETWEEN '1900-01-01 00:00:00' AND '2010-05-05 23:59:59' 1900年より前の処理なんてさすがにありませんよね?
お礼
ありがとうございます。 開始日をダミーで入れたら自分の望んでいた検索結果になりました。 いろいろな工夫があると勉強になりました。
お礼
教えていただいた、1番でのぞんでいた結果になりました。ありがとうございます。 sqlに > を使えば簡単に解決できて、それに気がつかなかった自分はまだ勉強不足だなと感じました。 >そもそも「hizuke」の型は??? >SQL見てると「DATE(hizuke)」ってやってるのに、「<= '20100505'」って・・・。 hizukeはdatetime型で、DATE(hizuke)としたのは、時刻を検索時に考慮したくないからなんですが、 自分でもよくわかっていません。 ありがとうございました。