アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
開発環境:MySQL3.23.58にて、DATETIME型で日付をYYYY-MM-DD hh:mm:ssで登録しています。
そこから、下のように
SELECT * FROM テーブル名 WHERE DATE( フィールド名 ) = '2007-09-12';
などと、日付だけを見てデータを抽出したい(時間は無視したい)のですが、マニュアルを見ると
『DATE() は MySQL 4.1.1 以降で使用できる。』
と書いてあり、やり方が分からず途方にくれております。

上記環境下で、うまく日付のみを見てデータを抽出する術は無いものでしょうか。
アドバイスをいただけたらと思います。
よろしくお願い致します。

A 回答 (2件)

型を変換したりするともしインデックスを設定していても無効になるよう


なのでこんな感じでどうでしょう?

SELECT * FROM テーブル名 WHERE フィールド名 BETWEEN '2007-09-12 00:00:00' AND '2007-09-12 23:59:59';

省略するとこんな感じ
SELECT * FROM テーブル名 WHERE フィールド名 BETWEEN '2007-09-12' AND '2007-09-13';

とかでどうでしょう?
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
やはりBETWEEN関数が良いようですね。
混迷していた矢先でしたので非常に助かりました!
ありがとうございました!

お礼日時:2007/09/14 19:23

日時の範囲指定にしてはどうでしょう?。



SELECT * FROM テーブル名 WHERE DATE( フィールド名 ) between cast('2007-09-12 00:00:00' as DATETIME) and cast('2007-09-12 23:59:59' as DATETIME);
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。
cast()も現在の開発環境下ですとサポートされていないようで・・・。
今後、別環境での開発の参考にさせて頂きます。
そういえばBETWEENなんていうものがありましたね・・・度忘れしてました。
ありがとうございました!

お礼日時:2007/09/14 19:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!