日付検索で0000-00-00 00:00:00を除外したい
mysql5.0 データ型はdatetimeで日付検索をしたのですが、
日付が"0000-00-00 00:00:00"で登録されているデータも
検索結果に表示され困っています。
例えば、
SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505')
→これだと、hizukeが0000-00-00 00:00:00のデータも表示されてしまいます。
日付が0000-00-00 00:00:00で登録されているデータを除外するため
自分もいろいろしてみたのですができません。どなたか教えていただけないでしょうか。
参考までに、自分が試したsql文を書きます。↓
SELECT *
FROM user_tbl WHERE (DATE( hizuke ) <= '20100505')
and (hizuke != '0000-00-00 00:00:00')
SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505')
and (hizuke <> '0000-00-00 00:00:00')
SELECT * FROM user_tbl WHERE (DATE( hizuke ) <= '20100505')
and (hizuke not in ('0000-00-00 00:00:00'))
→上記載のsqlはすべて検索件数が0になってしまいました。
もうわからなくなってしまったので、アドバイスお願いします。
No.2
- 回答日時:
SELECT *
FROM user_tbl WHERE (DATE( hizuke ) <= '20100505')
and DAYOFMONTH(hizuke);
DAYOFMONTHは、日付に扱いにならないデータをまとめて弾いてくれるので便利です。
DAYOFMONTH を使い自分の望んだ検索結果になりました。
DAYOFMONTHは日付を抜き出したりすることもできるのですね。
教えていただきありがとうございました。
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
とか・・・。
教えていただいた、1番でのぞんでいた結果になりました。ありがとうございます。
sqlに > を使えば簡単に解決できて、それに気がつかなかった自分はまだ勉強不足だなと感じました。
>そもそも「hizuke」の型は???
>SQL見てると「DATE(hizuke)」ってやってるのに、「<= '20100505'」って・・・。
hizukeはdatetime型で、DATE(hizuke)としたのは、時刻を検索時に考慮したくないからなんですが、
自分でもよくわかっていません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Visual Basic(VBA) VBAチェックボックスで有効無効切り替えできるように 5 2022/10/21 16:13
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
SQL 重複しないJoinの仕方を教...
-
日付検索で0001-01-01 00:00:00...
-
DISTINCTROWについてです。
-
複数のテーブルから値を合計出...
-
mysqlでunixtimeによる日付範囲...
-
select文の実行結果に空白行を...
-
SQLローダーCSV取込で、囲み文...
-
レコードの登録順がおかしい
-
これをSQL文で出来るでしょうか?
-
Oracleで「文字が無効です」の...
-
テーブルの最後(最新)のレコー...
-
count関数の値をwhere句で使用...
-
AccessのSQL文で1件のみヒット...
-
ファイルの漢数字の順番につい...
-
SELECTした合計値をそのまま割...
-
【PL/SQL】FROM区に変数を使う方法
-
アクセスのレポートでレコード...
-
where句中のtrim関数について
-
【SQLサーバ】float型における...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
複数のテーブルから値を合計出...
-
SQL 重複しないJoinの仕方を教...
-
MySQLで特定のグループの上位3...
-
直近1ヶ月に誕生日を迎える社員...
-
最新の日付と2番目の日付のデー...
-
SQLで、同じ値が何回連続す...
-
DISTINCTROWについてです。
-
mysqlでunixtimeによる日付範囲...
-
MySQL「 INT」「 DATETIME」違い
-
mysqlに格納されている日付のデ...
-
NULLは表示順最下位
-
【意見募集】文字列カラムに対...
-
mysqlのif文かcase文で複数条件...
-
MySQLのtimestamp型について
-
mysqlでクロス集計を取りたいが...
-
Mysqlで最新の日付を持つデータ...
-
日付や日時を格納する場合の型...
-
型変換
-
SQL文を教えてください。
おすすめ情報