时间戳& MySQL中的日期比较 - 模糊错误

时间:2010-07-13 10:29:15

标签: mysql mysql-error-1052

这是我昨天在这里得到帮助的问题的后续问题,但这是一个稍微不同的问题 - 我正在尝试检查db记录的mysql时间戳是否与过去的7天匹配(忽略小时和秒等),但我得到一个“列'import_date'在where子句是模糊的”,任何人都可以看到问题吗?

这是日期比较: 时间戳,例如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" ) 

1 个答案:

答案 0 :(得分:1)

关于您的模糊错误,查询中必须有两个表import_date列。您需要使用

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

酌情