sql >> データベース >  >> RDS >> Mysql

MySQL-BETWEENは正しい結果を選択しません

    これに関連するものを参照してください 質問。

    他の人が言っているように、あなたの主な問題は時間を考慮していないことです。それを処理するためのいくつかのオプション:

    1. 関数を使用して、DateTimeをDateに変換します。このオプションは、関数追加不可

    2. BETWEENを展開します その日の最後の瞬間を明示的に含めるには:(注:これはMS SQLが格納できる最新の値であり、MySQLが同じ値であるかどうかはわかりません)

      SELECT * FROM `punches` WHERE `date` 
      BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
      
    3. <を使用する 上限値について

      SELECT * FROM `punches` WHERE `date` >= '08/20/11' AND `date` < '09/01/11'
      

    ほとんどの場合、最後の方が簡単だと思います。

    列のデータ型を変更するなど、他のこともできると思いますが、ここでは、クエリの変更に関心があると想定しています。

    **免責事項:私はMS SQLの担当者であり、MySQLではありません



    1. MySQL列タイプTIMESTAMPには、暗黙的にNOT NULL DEFAULT CURRENT_TIMESTAMP ONUPDATECURRENT_TIMESTAMPが含まれます

    2. MySQLのラウンド日から週と月の初めまで

    3. MySQLで複合主キーを作成する方法

    4. 日時列から日付を選択するにはどうすればよいですか?