繁体   English   中英

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

[英]SQL query where() date's year is $year

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

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

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

SELECT * FROM table WHERE date=hasSomehowYearEqualTo=2012

查询会是什么样的?

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

采用

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

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

查看MySQL的YEAR() docs函数

SELECT * FROM table WHERE YEAR(date)=2012

从DATEPART(年,[日期])= 2012的表中选择*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM