我正在编写一个电子商务应用程序,我正在编写一个脚本来跟踪按年/月的项目销售情况。
我在这里使用此查询来从表格中获取不同的年月日期。
SELECT DISTINCT CONCAT(YEAR(date),'-',MONTH(date)) FROM product_purchases WHERE product_id = 1
这会给我一个像这样的输出
2017-11
2017-12
我接下来想要完成的是选择与该年份和月份相匹配的数据,例如2017-11。
我已经尝试过这个返回0行的查询
SELECT * FROM product_purchases WHERE DATE(date) = '2017-12'
这样做的正确方法是什么?
答案 0 :(得分:4)
用此
替换您的group by date_format( date_column, '%Y-%m' )
语句
where
即。
CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'.
你最终可以这样做。
SELECT * FROM product_purchases WHERE CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'
答案 1 :(得分:3)
要查找某个月的记录,请将where子句更新为:
where CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'
答案 2 :(得分:2)
WHERE CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'
将生成完整日期格式,该格式不等同于' 2017-12'。试试这个:
WHERE YEAR(date) = 2017 AND MONTH(date) = 12
或者这个:
%
答案 3 :(得分:1)
当然你的查询返回0行。问题伴随着你的病情。 它应该是:
SELECT * FROM product_purchases WHERE YEAR(date) = '2017' AND MONTH(date) = '12'
答案 4 :(得分:1)
如果您希望数据仅按年和月过滤,请使用日期列上的TextBox
来匹配所需的年份和月份。
示例:
date_format
如果您想按年份和月份汇总数据,请在格式上使用where date_format( date_column, '%Y-%m' ) = '2017-12'
。
示例:
group by
答案 5 :(得分:1)
SELECT * FROM oc_customer WHERE MONTH(date_added
)= 1和YEAR(date_added
)= 2016
答案 6 :(得分:1)
这将是你的
WHERE YEAR(date) = 2017 AND MONTH(date) = 12