这是我昨天在这里得到帮助的问题的后续问题,但这是一个稍微不同的问题 - 我正在尝试检查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" )
答案 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
酌情