2

这是我昨天在这里得到帮助的问题的后续,但这是一个略有不同的问题 - 我正在尝试检查数据库记录的 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" ) 
4

1 回答 1

1

关于您的模棱两可的错误,您在查询中必须有 2 个表,并且都有一个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

作为适当的

于 2010-07-13T10:49:09.923 回答