mysql - 对部分 MySQL 日期时间字段进行分组
问题描述
我认为这是有效的,因为它在我测试它的那天给出了当前(也是唯一的)条目的结果,但是现在有几天的条目,结果不是我需要或预期的。
SELECT DATE_FORMAT(DateField, '%M %h, %Y') AS `Date`, SUM(NumberCount) AS Counts
FROM tablename
GROUP BY DATE_FORMAT(DateField, '%M %h, %Y')
ORDER BY `Date`
正在给
March 04, 2019 2
March 06, 2019 2
March 11, 2019 3
而表包含
2019-03-07 18:15:05 1
2019-03-07 18:21:58 1
2019-03-08 16:45:05 2
2019-03-08 23:19:00 1
2019-03-08 23:19:01 2
所以我期待
March 07, 2019 2
March 08, 2019 5
任何想法如何获得预期的结果?
解决方案
只需使用该date
功能。您真的需要将日期格式化为字符串吗?
SELECT DATE(DateField) AS `Date`, SUM(NumberCount) AS Counts
FROM tablename
GROUP BY DATE(DateField)
ORDER BY `Date`;
如果您确实使用DATE_FORMAT()
,请不要包括该月应该是哪一天的小时数。您可能想要: ''%M %d, %Y'
.
推荐阅读
- javascript - Firebase UI 无法使用 google 登录:updateCurrentUser 失败
- php - 如何在 PHP 中反转多级数组
- javascript - 将 react chartjs 的标签文本更改为图像
- javascript - Javascript 对象方法评估函数
- elasticsearch - 使用 fluentd 不会将日志发送到 elasticsearch。日志写在一行中
- tensorflow - 有没有办法获得 hdf5 格式的高效网络预训练权重?
- python - Graphen Django:批处理请求应该收到一个列表,但收到 {'query': XXX}
- c++ - 检查多个平台上的进程?
- javascript - 为什么“onpaste”在 Visual Studio 2019 中未被识别为有效的 javascript 事件?
- kivy - 使用 kivy 模块不透明的画布中的图像