【发布时间】:2014-11-02 18:45:37
【问题描述】:
我最近的任务是编写一个报告工具来获取一些历史数据。 但我到了一个我被困住的地步。我无法获取过去整月的数据。
故事: 用户得到一个字段,他可以在其中键入他想要获取历史(过去几个月的)多长时间,例如:我想要最近 3 个月的数据。他输入他的值,发送数据并(应该)得到这样的输出(因为我们现在有九月):
X data in August,
Y data in July,
Z data in June.
我的查询是:
SELECT * FROM table WHERE (publish_up between date_sub(NOW(),
INTERVAL ".$history." MONTH)
AND date_sub(now(), INTERVAL " . -- $history . " MONTH))
AND created_by = '$editorID' AND state = 1 AND sectionid in (1,2,3)";
但是有了这个,显然我总是从现在获取数据 - 1 个月。所以我要向用户展示的数据是错误的,因为它从一个月中的某个地方开始,在另一个月中的某个地方结束。我希望期间从每月的第一天开始,到每月的最后一天结束。
我的第一个想法是,我可以从当前日期中减去当月已经过去的天数,得到上个月的第一天,但我不知道该怎么做。我也不知道如何得到那个月的名字。
【问题讨论】:
标签: php mysql sql date timestamp