SELECT * FROM table WHERE MONTH =今天下个月

时间:2014-11-25 16:44:32

标签: php mysql

我正在尝试制作一个小巧轻便的基于PHP的工作表系统。我知道在网上我可以找到很多,但这些对我来说太过分了。

我有桌子:

ID
date
user_name
workplace1_am
workplace1_pm
workplace2_am
workplace2_pm

对于当前月份和当前日期,我解决了问题。

现在我只需要在下个月从表中获取数据:

SELECT * FROM table WHERE ...

3 个答案:

答案 0 :(得分:5)

使用date字段

SELECT * FROM table WHERE month = NOW() + INTERVAL 1 MONTH

使用timestamp字段

SELECT * FROM table WHERE MONTH(date) = MONTH(NOW() + INTERVAL 1 MONTH) AND YEAR(date) = YEAR(NOW() + INTERVAL 1 MONTH)

答案 1 :(得分:3)

一个很好的例子是确保您的月份列为DATE(),然后将其投放到某个日期, 然后与提取日期的CURDATE()进行比较。 NOW()提取与日期比较时无效的日期和时间。

SELECT whatever_you_need
FROM table
WHERE date = CURDATE() + INTERVAL 1 MONTH

注意:我不建议你只用SELECT *拉出所有内容,你应该总是拿出你需要的特定行

编辑:

找到一年和一个月你可以做到这一点

SELECT whatever_you_need
FROM table
WHERE EXTRACT(year_month FROM date) = EXTRACT(year_month FROM CURDATE() + INTERVAL 1 MONTH)

WORKING FIDDLE DEMO

year_month以yyyymm格式返回数据,因此它是一个函数调用中按月和年的唯一比较

答案 2 :(得分:0)

  

使用此

SELECT DATE_ADD($currentdate, INTERVAL 1 MONTH);
  

请参阅此非常有用的link