我正在尝试从数据库表中选择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周的潜在客户?
答案 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'";