如何在MySQL中按日期求和每日“Anemometro TS231 [m/s]”数据
MySQL datetime类型字段按天分组求和方案
问题原因
直接使用带时分秒的fecha字段分组时,只要时间部分不一致就会被判定为不同分组,无法实现按自然日聚合。
正确实现代码
使用MySQL内置DATE()函数提取字段的日期部分再分组即可:
SELECT DATE(`fecha`) AS 统计日期, SUM(`TS231 anemometro [m / s]`) AS 当日风速求和 FROM `data_candidatos_a` GROUP BY DATE(`fecha`) -- 可选按日期排序 ORDER BY 统计日期 ASC;
可选扩展
如果需要自定义日期显示格式,可使用DATE_FORMAT函数:
SELECT DATE_FORMAT(`fecha`, '%Y年%m月%d日') AS 统计日期, SUM(`TS231 anemometro [m / s]`) AS 当日风速求和 FROM `data_candidatos_a` GROUP BY DATE_FORMAT(`fecha`, '%Y年%m月%d日')
注意事项
- 需保证
fecha字段为datetime、timestamp类型,或为符合规范的日期字符串,否则DATE()函数会返回NULL导致分组异常 - 字段名称需和表结构完全一致,特殊符号包裹的字段必须加反引号,同时注意MySQL在不同操作系统下的大小写敏感问题,避免字段找不到报错
内容的提问来源于stack exchange,提问作者Debora Zárate
相关产品推荐
相关产品推荐

