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

2022-08-30 16:52:42

我正在从表格中选择各种东西。问题是我只想选择它们,如果它们属于当前年份和下一年。

我的表看起来像这样

标题文本日期

日期的格式类似于 0000-00-00,格式为“date”

所以问题是,我怎么能只从今年和明年选择项目?

示例:年份是 2012 年,我的表中有旧的项目,我不希望它们显示 - 我只想从 2012 年 1 月 1 日选择项目,在本例中为 2013 年 12 月 31 日,当前年份 2012 + 1 年。

非常感谢您的任何帮助!


答案 1
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


答案 2
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;

推荐