我正在从桌子上选择各种东西.问题是我只想选择它们,如果它们属于当年和下一年.
我的桌子看起来像这样
标题文本日期
日期格式如此制作,格式为"日期"
所以问题是我如何只选择今年和下一年的项目?
示例:年份是2012年,我的表中的项目已经过时了,我不想让它们显示 - 我只想选择2012年1月1日的最后一项,最后一次是2013年12月31日当前2012年+ 1年.
非常感谢您的帮助!
Dan*_*man 62
SELECT
*
FROM
table
WHERE
YEAR(date) = YEAR(CURDATE())
OR
YEAR(date) = YEAR(CURDATE()) + 1
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
SELECT
*
FROM
table
WHERE
date BETWEEN CONCAT(YEAR(CURDATE()),'-01-01') AND CONCAT(YEAR(CURDATE())+1,'-12-31')
Run Code Online (Sandbox Code Playgroud)
尽管看起来很丑陋,但它允许您的查询在date
字段上使用索引。
更好的想法是在外部 PHP 脚本中创建限制日期,以便查询可以使用查询缓存。
如果您只想显示不超过两年的项目,您可以这样做:
SELECT
*
FROM
table
WHERE
date >= CURDATE() - INTERVAL 2 YEAR;
Run Code Online (Sandbox Code Playgroud)