【发布时间】:2017-03-30 20:08:29
【问题描述】:
我在this question 上关注了第一个答案,但我的 sql 查询有一些问题。我没有得到任何结果。
我犯了什么错误?
如何始终在每月的第一天设置 CURDATE?
SELECT DATE_FORMAT(`date`, '%Y-%m-%d') , `price`
FROM `sales`
WHERE `id` = :id
AND (`date` BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE())
编辑整个代码:
$verkaufmonat3 = 0;
$verkaufmonatanzahl2 = 0;
$verkaufmonat4 = array();
$sqluser5 = $X['dbh']->prepare("SELECT DATE_FORMAT(`date`, '%Y-%m-%d') , `preis` FROM `verkauf` WHERE `vertreterid` = :id AND (`date` BETWEEN CURDATE(), '%Y-%m-01' - INTERVAL 60 DAY AND CURDATE(), '%Y-%m-01')");
$sqluser5->execute(array(
':id'=>$_SESSION['id']
));
$verkaufmonatanzahl2 = $sqluser5->rowCount();
$verkaufmonat4 = $sqluser5->fetchAll();
for ($a = 0; $a <= $verkaufmonatanzahl2; $a++) {
$verkaufmonat3 += $verkaufmonat2[$a]['preis'];
}
在我的数据库中,我在 2016 年 10 月 28 日进行了一次促销活动。价值50欧元。所以我的 $verkaufmonat3 应该是 50,但它不是,它是 0。
【问题讨论】:
-
我认为问题是您在此处指定 id 而您只需要日期范围