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

日付/時刻比較のための操作のための照合の違法な組み合わせ

    1. DATE_ADD()

      あなたの場合、 table1.tim TIMEです 値の場合、関数は文字列を返します。

      文字列は、<によって指定された文字セットと照合で返されます。 code> character_set_connection および collat​​ion_connection

    2. TIMEのマニュアルエントリで説明されているように()

      文字列はバイナリ文字列として返されます(接続文字セットを使用しないのはなぜですか?照合は私を超えています-おそらくバグですか?)

    3. 式評価での型変換 のマニュアルエントリで説明されているように :

      したがって、実行される比較は文字列比較ですが、 binary 文字列を比較のために適切な照合に強制することはできません(そのエンコーディングが不明であるため)。したがって、あなたが目撃しているエラー。

    明示的にキャスト することで、比較を強制的に正しく行うことができます。 一方または両方のオペランドですが、 TIME との比較から暗黙的に変換が行われるように、句を作り直したいと思います。 タイプ:

    TIME(table1.dt1 - INTERVAL 1 MINUTE) <= table1.tim
    



    1. 優先IDのリストでmysqlの結果を並べ替えるにはどうすればよいですか?

    2. データベース設計

    3. SQLiteデータベースとの間でバイト配列(画像データ)を保存および取得するにはどうすればよいですか?

    4. LIKE句で角かっこをエスケープするにはどうすればよいですか?