获取当前年份和下一个表单mysql

时间:2011-01-26 23:20:20

标签: php mysql

我正在从桌子上选择各种东西。问题是我只想选择它们,如果它们属于当年和下一年。

我的表格看起来像这样

  

标题文字日期

日期的格式如此制作,格式为“date”

所以问题是我如何只选择今年和下一年的项目?

示例:年份是2012年,我的表中的项目已经过时了,我不希望它们显示 - 我只想选择2012年1月1日的最后一项,最后一次是2013年12月31日当前年度2012 + 1年。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:60)

SELECT 
  * 
FROM 
  table 
WHERE 
  YEAR(date) = YEAR(CURDATE()) 
OR 
  YEAR(date) = YEAR(CURDATE()) + 1

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

答案 1 :(得分:4)

SELECT 
  *
FROM
  table
WHERE
  date BETWEEN CONCAT(YEAR(CURDATE()),'-01-01') AND CONCAT(YEAR(CURDATE())+1,'-12-31')

看起来很丑陋,它允许您的查询在date字段上使用索引。

更好的想法是在外部PHP脚本中创建限制日期,以便查询可以使用查询缓存。


如果您只想展示不超过两年的商品,您可以这样做:

SELECT
  *
FROM
  table
WHERE
  date >= CURDATE() - INTERVAL 2 YEAR;