我在名为ifd0_DateTime
的表格中有一列photo
,其中包含以下格式的日期时间:1966:12:22 17:19:57
。
我需要每年按月计算照片数量。
到目前为止,我有这个查询。但它没有正常工作。
SELECT ifd0_DateTime, count(*) FROM photo
group by YEAR(ifd0_DateTime), MONTH(ifd0_DateTime);
有人可以解决这个问题吗?
答案 0 :(得分:2)
SELECT STR_TO_DATE(LEFT(ifd0_DateTime, 7), '%Y:%m'),
COUNT(*) AS dateCnt
FROM photo
GROUP BY STR_TO_DATE(LEFT(ifd0_DateTime, 7), '%Y:%m')
答案 1 :(得分:1)
存储日期时间的正确方法是使用内置数据类型。但是,看起来您将值存储为字符串。如果是这样,你只需要前7个字符:
SELECT LEFT(ifd0_DateTime, 7) as yyyymm, count(*)
FROM photo
GROUP BY LEFT(ifd0_DateTime, 7)
ORDER BY yyyymm;
但是,你真的应该修复数据。
答案 2 :(得分:0)
SELECT YEAR(ifd0_DateTime), MONTH(ifd0_DateTime), count(*) FROM photo
group by YEAR(ifd0_DateTime), MONTH(ifd0_DateTime);
你的意思是?