mysql在whereclause中使用DateTime

时间:2012-01-16 19:45:18

标签: mysql

我在下面尝试了这个查询,但它仍然会返回具有-1值的日期。我希望where子句返回2天或更新的行。谢谢!

SELECT uniqueKey,(TO_DAYS(TimeStampColumn) - TO_Days(Now())) as 'dayDiff'
 FROM couponextractor.tblresults
 where 'dayDiff' >= 0

3 个答案:

答案 0 :(得分:1)

因为你只是比较字符串'daydiff'> = 0,它总是评估为0 =>真

你需要删除引号并使用HAVING,除了非常低效的查询...最好先计算日期,然后在列上使用> =运算符。

拥有dayDiff> = 0

所以只需计算确切日期,然后就可以了 在哪里TimeStampColumn> =“XXXX-XX-XX AA:AA:AA”所以如果你有索引,它可以由服务器优化。

答案 1 :(得分:0)

SELECT * FROM tbl WHERE datetime<现在() - INTERVAL 2 DAY

答案 2 :(得分:0)

为什么不使用MYSQL DATEDIFF-功能?

 SELECT uniqueKey,DATEDIFF(TimeStampColumn,Now()) as 'dayDiff'
 FROM couponextractor.tblresults
 where DATEDIFF(TimeStampColumn,Now()) >= 1

认为这样可以胜任。也许你必须施放TimeStampColumn。