我有一个表格,其中的日期时间格式为Order_Date。 而我正在撰写一个查询,这些查询只选择了我今年的所有产品。 但我真的不知道我该怎么写。从一个特定年份中选择项目
在“伪查询”它应该是这样的:
SELECT * FROM produit WHERE Order_Date(year) == now(year) order by Order_Date desc
我有一个表格,其中的日期时间格式为Order_Date。 而我正在撰写一个查询,这些查询只选择了我今年的所有产品。 但我真的不知道我该怎么写。从一个特定年份中选择项目
在“伪查询”它应该是这样的:
SELECT * FROM produit WHERE Order_Date(year) == now(year) order by Order_Date desc
你拥有它倒退。当你想调用列上的函数时,可以将函数名称放在列名称之外。所以这是
WHERE YEAR(Order_Date) = YEAR(NOW())
哦,我几乎在那里......谢谢,它的作品完全像我想要的^^ – 2014-09-11 07:59:29
我认为你可以这样做:
SELECT * FROM produit WHERE YEAR(Order_Date) = YEAR(NOW()) order by Order_Date desc
您可以在优化搜索的方式重写查询作为
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
所以,如果你在上有索引10然后查询将使用索引,但如果你应用任何函数在你的列查询将不会使用索引Sargable
“> =今年1月”和“<= dec-31今年” – 2014-09-11 07:54:49