答案 0 :(得分:5)
2013-06-25至2013-07-20之间的所有日期:
SELECT * FROM myTable
WHERE myDateColumn BETWEEN '2013-06-25' AND '2013-07-20'
2011年或2013年的所有日期:
SELECT * FROM myTable
WHERE YEAR(myDateColumn) IN (2011, 2013)
2011年至2013年之间的所有日期:
SELECT * FROM myTable
WHERE YEAR(myDateColumn) BETWEEN 2011 AND 2013
或者如果你有一个关于日期的索引并想要一个可优化的查询,你应该放弃YEAR
函数调用:
SELECT * FROM myTable
WHERE myDateColumn BETWEEN '2011-01-01' AND '2013-12-31'
按照建议查看日期功能。祝你好运!
答案 1 :(得分:1)
使用类似的东西:
SELECT * FROM table
WHERE date LIKE '%2013%'
获取包含2013年的数据。
将此应用到您自己的表结构中,它应该会为您提供所需的结果。
答案 2 :(得分:1)
您应该查看MySql的date and time functions,它会向您显示有关日期和时间可用的不同功能的大量信息。但是,要回答您的问题,我希望这些快速查询会有所帮助。
SELECT
*
FROM MyTable
WHERE datecolumn > '2011-01-01'
AND datecolumn < '2012-01-01'
或者,您可以将其写为
SELECT
*
FROM MyTable
WHERE datecolumn BETWEEN '2011-01-01' AND '2012-01-01'
以这种方式编写查询而不是使用YEAR
函数将有助于利用索引(如果有的话)。