我有一个表格,其日期时间格式为Order_Date字段。 我正在编写一个查询,仅选择我今年的所有产品。 但我真的不知道如何写出来。
"伪查询"它应该是这样的:
SELECT * FROM produit WHERE Order_Date(year) == now(year) order by Order_Date desc
答案 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