いいえ-日付/時刻の形式がサポートされている形式と一致する場合、MySQLは暗黙的な変換を実行して、比較対象の列に基づいて値をDATETIMEに変換します。同じことが起こります:
WHERE int_column = '1'
...ここで、「1」の文字列値は、int_column
のため、INTegerに変換されます。 のデータ型はINTであり、CHAR / VARCHAR/TEXTではありません。
文字列を明示的にDATETIMEに変換する場合は、STR_TO_DATE関数 最良の選択です:
WHERE expires_at <= STR_TO_DATE('2010-10-15 10:00:00', '%Y-%m-%d %H:%i:%s')