Mysql选择和日期> =当前日期 - 3周

时间:2011-11-28 11:03:32

标签: mysql date

我有一个select查询,可以检索3周大的所有条目。

我想知道是否有像where date> Expr (CURDATE () - 3 WEEKS)这样的表达式,或者我是否必须首先计算我的php脚本中的差异。

我的日期格式为timestamp,格式为:2010-06-21 16:59:59

此致

3 个答案:

答案 0 :(得分:6)

您可以使用以下代码行

where date>DATE_SUB(curdate(),INTERVAL 3 WEEK);

答案 1 :(得分:4)

您可以像DATEDIFF()一样使用WHERE DATEDIFF(CURDATE(), date) = 21功能。

答案 2 :(得分:2)

使用时间戳的实际输入更好,
因为它允许查询缓存生效

来自: - http://www.dangrossman.info/2007/04/26/mysql-tuning-disable-query-cache-on-frequently-updated-databases/

  

不缓存包含非确定性函数的查询。这包括CURDATE(),RAND()或输出并不总是相同的任何其他函数。

来自文档: - http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html