DATE_SUB()始终返回0结果

时间:2015-12-14 12:26:18

标签: mysql select

我正在尝试从数据库表中选择2周大的所有行。

date_updated字段是一个unix时间戳,这是我在查询中使用的。

以下是查询:

select * from `leads` where date_format(from_unixtime(date_updated), '%Y-%m-%d') = date_format(date_sub(now(), interval 2 week), '%Y-%m-%d')

为什么这个查询每次都会返回0结果,尽管表格中有2周的潜在客户?

2 个答案:

答案 0 :(得分:0)

在查询中更新date_sub()。按以下格式更改查询。

    select * from `leads` where date_format(from_unixtime(date_updated), '%Y-%m-%d') = date_format(date_sub(now() - interval 2 week), '%Y-%m-%d')

答案 1 :(得分:-1)

出于表演原因,我会在进行查询前计算日期:

PHP:

$twoWeeksAgo = new DateTime('-2 weeks');

$twoWeeksAgo->setTime(0, 0, 0);
$startOfDay = $twoWeeksAgo->getTimestamp();

$twoWeeksAgo->setTime(23, 59, 59);
$endOfDay = $twoWeeksAgo->getTimestamp();

$query = "SELECT * 
          FROM leads 
          WHERE date_updated BETWEEN '$startOfDay' AND '$endOfDay'";