我的表格看起来像这样
标题文字日期
日期的格式如此制作,格式为“date”
所以问题是我如何只选择今年和下一年的项目?
示例:年份是2012年,我的表中的项目已经过时了,我不希望它们显示 - 我只想选择2012年1月1日的最后一项,最后一次是2013年12月31日当前年度2012 + 1年。
非常感谢您的帮助!
答案 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;