我将数据库中的日期存储在date
数据类型的列中。
假设我有一个 date
列,我在其中存储“2011-01-01”、“2012-01-01”、“2012-02-02”等数据。
现在我需要编写 SQL,仅选择 date
等于 2012
的行
从表中选择 * WHERE date=hasSomehowYearEqualTo=2012
查询会是什么样的?
最佳答案
不要不要使用YEAR(date)
- 这将计算所有日期的YEAR(date)
,即使是那些您从未使用过的日期。它还将不可能使用索引——数据库层上的最坏情况。
使用
$sql="SELECT * FROM table WHERE `date` BETWEEN '$year-01-01' AND '$year-12-31'"
一般规则:如果您可以在常量计算和字段计算之间进行选择,请使用前者。
关于php - SQL 查询 where() 日期的年份是 $year,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186741/