我在查询的最后一个月遇到问题: 这是我的问题:
SELECT
i_chelt_pub_val.`agent_id`,
i_chelt_pub_val.`date`,
i_chelt_pub_val.`form_val`
FROM
i_chelt_pub_val
WHERE (
MONTH(i_chelt_pub_val.`date`) = (MONTH(CURRENT_TIMESTAMP) - 1)
)
AND i_chelt_pub_val.`agent_id` = '253'
它在2013年运作良好,现在在2014年我遇到了一个问题,因为这行查询MONTH(i_chelt_pub_val.date) = (MONTH(CURRENT_TIMESTAMP) - 1)
会让我12 = 1-1,这不好。我想在where子句中为12 = 12.我该怎么做?
答案 0 :(得分:2)
尝试DATE_SUB():
... = MONTH(DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 MONTH));
答案 1 :(得分:2)
假设您想要从上个月开始到上个月末的所有数据,您的查询有三个问题:
2014-01-22 15:03:00
,然后您将从{{{{}}获取数据1}}直到今天,但不是来自2013-12-22 15:03:00
要解决此问题,请按以下方式查询:
2013-12-01 00:00:00
答案 2 :(得分:0)
SELECT
i_chelt_pub_val.`agent_id`,
i_chelt_pub_val.`date`,
i_chelt_pub_val.`form_val`
FROM
i_chelt_pub_val
WHERE (
(
MONTH(i_chelt_pub_val.`date`) = (MONTH(CURRENT_TIMESTAMP) - 1)
AND
YEAR(i_chelt_pub_val.`date`) = (YEAR(CURRENT_TIMESTAMP))
)
OR
(MONTH(i_chelt_pub_val.`date`) = 12
AND
MONTH(CURRENT_TIMESTAMP)=1
AND
YEAR(i_chelt_pub_val.`date`) = (YEAR(CURRENT_TIMESTAMP)-1))
)
AND i_chelt_pub_val.`agent_id` = '253'