SQL 查询,其中() 日期的年份为 $year

2022-08-31 00:22:03

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

假设我有一列,我存储了这样的数据“2011-01-01”,“2012-01-01”,“2012-02-02”等。date

现在我需要使SQL仅选择等于date2012

SELECT * FROM table WHERE date=hasSomehowYearEqualTo=2012

查询会是什么样子?


答案 1

不要使用 - 这将计算所有日期,即使是那些,你永远不会使用。它还将使索引的使用变得不可能 - 数据库层上的最坏情况。YEAR(date)YEAR(date)

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

作为一般规则:如果要在常量计算和字段计算之间进行选择,请使用前者。


答案 2

查看 MySQL 的 YEAR() docs 函数

SELECT * FROM table WHERE YEAR(date)=2012

推荐