2

これは、昨日ここで助けを得た質問のフォローアップですが、少し異なる問題です.dbレコードのmysqlタイムスタンプが過去7日間と一致するかどうかを確認しようとしています(時間と秒などを無視します) 、しかし、「where句の列 'import_date'があいまいです」というメッセージが表示されますが、誰でも問題を見ることができますか?

これは日付の比較です: タイムスタンプ、例: 2010-07-13 11:04:27

WHERE date_format( `import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 
4

1 に答える 1

1

import_dateあいまいなエラーに関しては、クエリに列を持つ2つのテーブルが必要です。使用する必要があります

WHERE date_format( `YourTableName`.`import_date`, "%Y-%m-%d" ) =
    date_format( date_sub( now(), INTERVAL 11 DAY ), "%Y-%m-%d" ) 

ただし、上記のクエリはSARGABLEではないため非効率的であることを追加するだけです

私はMySQLが何をしているのかを正確に知るほど十分に精通していませんが、間違いなく次のように書き直したほうがよいでしょう

WHERE `YourTableName`.`import_date` = x

また

WHERE `YourTableName`.`import_date` between x and y

適切に

于 2010-07-13T10:49:09.923 に答える