我使用了以下查询来获取与WHERE子句中给定时间匹配的所有记录。但我得到了不同的结果。如果您查看tat图片,您可以看到2条记录有分钟<> 30但它仍被列为查询结果。但是,如果我改变小时他们没有列出。可能是什么问题?
SELECT * FROM pos_takeaways WHERE STR_TO_DATE(time,'%d/%m/%y %H:%U:%S') = STR_TO_DATE('20/6/2011 22:30:00','%d/%m/%Y %H:%U:%S')
输出:
答案 0 :(得分:2)
我认为有两个问题:
而不是%U,在STR_TO_DATE的参数中使用%i(%U代表周数)
SELECT * 来自pos_takeaways 在STR_TO_DATE(时间,'%d /%m /%y%H:%i:%S')< = STR_TO_DATE('20 / 6/2011 22:30:00','%d /%m /% Y%H:%i:%S');
希望这有帮助。
答案 1 :(得分:1)
似乎MySQL中的STR_TO_DATE
函数存在问题,请检查http://bugs.mysql.com/bug.php?id=56271
。因此,如果您使用旧版本的MySQL(6个月大),那么这可能是原因,您应该考虑升级MySQL。如果这不是问题,请尝试在两个字段中使用相同的值BETWEEN AND
。
Operator Between。不要忘记检查有关将其用于DATE
比较