选择一个特定年份的项目

时间:2014-09-11 07:51:39

标签: mysql sql date datetime

我有一个表格,其日期时间格式为Order_Date字段。 我正在编写一个查询,仅选择我今年的所有产品。 但我真的不知道如何写出来。

"伪查询"它应该是这样的:

SELECT * FROM produit WHERE Order_Date(year) == now(year) order by Order_Date desc

3 个答案:

答案 0 :(得分:1)

你倒退了。如果要在列上调用函数,请将函数名称放在列名称之外。所以它是

WHERE YEAR(Order_Date) = YEAR(NOW())

答案 1 :(得分:1)

我认为你可以这样做:

SELECT * FROM produit WHERE YEAR(Order_Date) = YEAR(NOW()) order by Order_Date desc

答案 2 :(得分:0)

您可以以可疑的方式重写您的查询

SELECT *
 FROM produit
 WHERE 
Order_Date between DATE_FORMAT(NOW() ,'%Y-01-01') 
and DATE_FORMAT(NOW() ,'%Y-12-31')
order by Order_Date desc 

SELECT *
 FROM produit
 WHERE 
Order_Date >= DATE_FORMAT(NOW() ,'%Y-01-01') 
and  Order_Date <= DATE_FORMAT(NOW() ,'%Y-12-31')
order by Order_Date desc 

因此,如果您的Order_Date上有索引,那么查询将使用索引,但如果您对列查询应用任何函数,则不会使用索引查看Sargable