SQL查询where()日期年份为$ year

时间:2012-02-08 01:44:00

标签: php sql

我在date数据类型的列中将日期存储在我的数据库中。

假设我有列date,我存储的数据类似于“2011-01-01”,“2012-01-01”,“2012-02-02”等。

现在我需要创建只选择date等于2012

的行的SQL

SELECT * FROM table WHERE date=hasSomehowYearEqualTo=2012

查询会是什么样的?

3 个答案:

答案 0 :(得分:18)

使用YEAR(date) - 这将为所有日期计算YEAR(date),即使是那些您永远不会使用的日期。它还将使用不可能的索引 - 在DB层上最坏的情况。

使用

$sql="SELECT * FROM table WHERE `date` BETWEEN '$year-01-01' AND '$year-12-31'"

作为一般规则:如果您可以选择常量计算和字段计算,请使用前者。

答案 1 :(得分:8)

查看MySQL的YEAR() docs函数

SELECT * FROM table WHERE YEAR(date)=2012

答案 2 :(得分:-3)

从DATEPART(年,[日期])= 2012

的表中选择*