• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付検索で0000-00-00 00:00:00を除外したい)

MySQL日付検索で0000-00-00 00:00:00を除外する方法

このQ&Aのポイント
  • MySQLの日付検索で、0000-00-00 00:00:00という値を除外する方法について教えてください。
  • 試したSQL文では、検索結果が0件になってしまいます。
  • どのような条件を設定すれば、0000-00-00 00:00:00を除外した検索結果を得ることができるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 とか・・・。

yorkies
質問者

お礼

教えていただいた、1番でのぞんでいた結果になりました。ありがとうございます。 sqlに > を使えば簡単に解決できて、それに気がつかなかった自分はまだ勉強不足だなと感じました。 >そもそも「hizuke」の型は??? >SQL見てると「DATE(hizuke)」ってやってるのに、「<= '20100505'」って・・・。 hizukeはdatetime型で、DATE(hizuke)としたのは、時刻を検索時に考慮したくないからなんですが、 自分でもよくわかっていません。 ありがとうございました。

その他の回答 (2)

  • moousi
  • ベストアンサー率70% (21/30)
回答No.2

SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505') and DAYOFMONTH(hizuke); DAYOFMONTHは、日付に扱いにならないデータをまとめて弾いてくれるので便利です。

yorkies
質問者

お礼

DAYOFMONTH を使い自分の望んだ検索結果になりました。 DAYOFMONTHは日付を抜き出したりすることもできるのですね。 教えていただきありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

開始日をダミーでいれればよいのでは? SELECT * FROM user_tbl WHERE hizuke BETWEEN '1900-01-01 00:00:00' AND '2010-05-05 23:59:59' 1900年より前の処理なんてさすがにありませんよね?

yorkies
質問者

お礼

ありがとうございます。 開始日をダミーで入れたら自分の望んでいた検索結果になりました。 いろいろな工夫があると勉強になりました。

関連するQ&A