从SQL查询中获取正确格式的日期时间

时间:2016-12-05 01:06:49

标签: mysql sql

我在名为ifd0_DateTime的表格中有一列photo,其中包含以下格式的日期时间:1966:12:22 17:19:57。 我需要每年按月计算照片数量。

到目前为止,我有这个查询。但它没有正常工作。

SELECT ifd0_DateTime, count(*) FROM photo group by YEAR(ifd0_DateTime), MONTH(ifd0_DateTime);

有人可以解决这个问题吗?

3 个答案:

答案 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);

你的意思是?