我想检索上一年的12月和当年的11月之间的统计数据。我的表的date
列的数据类型为date
。选择上一年的12月和当年的11月之间的数据,MySQL
以下SQL可以正常工作,但只有在手动更改年份时才起作用。在这段时间内,如何实现同样的动态变化的一年?
SELECT date, SUM(numCalls) AS callTotal FROM callstats_callData
WHERE date BETWEEN '2011-12-01' AND '2012-11-01'
GROUP BY date ORDER BY date
PHP正在从MySQL表中检索数据。
UPDATE
以下作品中的代码,但我希望能有一个基于SQL的解决方案。
$date1 = (date("Y") - 1) . '12-01';
$date2 = date("Y") . '-11-01';
$fetchTotals = $this->contentDB->prepare("SELECT date, SUM(numCalls) AS callTotal FROM callstats_callData
WHERE date BETWEEN ? AND ?
GROUP BY date ORDER BY date");
$fetchTotals->execute(array($date1, $date2));
$totals = $fetchTotals->fetchAll();
工作实例
这是呼叫总数图表here恢复呼叫数据。结果需要循环检索才能显示该时间段内每月的总数。此页面目前正在使用上面的PHP代码正常工作,只是希望有一个基于SQL的解决方案。
凡被从制作这个SQL调用?如果它是由PHP页面或类似的自动/生成的,你可以在那里生成一年;如果你手工输入,你没有问题。 – jfmatt
这是在PHP中完成的。我尝试了一个包含日期范围的准备好的语句,并且它没有执行 - '... WHERE date date BETWEEN:date1 AND:date2' – NightMICU
您应该编辑该信息以及您用于原始问题的存储过程的代码。问题101:我们无法帮助你解决你没有告诉我们的问题。 – jfmatt