【发布时间】:2018-08-03 01:31:01
【问题描述】:
我有一个设置为全组模式的 SQL 数据库。我的目标是获取每个月的行数(ID)。这就是为什么我说Group By Datum。由于全组模式,我不能简单地说Order By created_at。因为我只选择了%m.%Y。所以我只能使用Datum,这与我的月份和年份一致。
我已经尝试连接这些值,例如 CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00"),但这也不起作用...即使我将其转换为 UNIX 时间戳,它也不起作用:UNIX_TIMESTAMP(CONCAT('DATE_FORMAT(created_at, '%Y-%m'), "-01 00:00:00"))
我什至试过这个:
Order By Year(DATE_FORMAT(created_at, '%Y')), Month DATE_FORMAT(created_at, '%m') 但它也不起作用......
如何在不更改 Select 值的情况下按月和年对结果进行排序?
到目前为止,这是我实际的 SQL 查询。也不工作..我几乎试图找到一个解决方案,因为 1 小时......
SELECT COUNT(ID) AS Anzahl, DATE_FORMAT(created_at, '%m.%Y') AS Datum
FROM leads
WHERE created_at >= '2015-01-01' AND created_at <= '2018-01-01'
AND shopID = 4184
GROUP BY Datum
ORDER BY UNIX_TIMESTAMP(STR_TO_DATE(Datum, '%Y-%m-01 00:00:00'))
我将不胜感激任何形式的帮助!不,我无法更改 Select 值或关闭 full_group_mode。
【问题讨论】:
-
您在尝试后看到了哪些错误消息?
-
没有错误信息。它只是没有按月和年排序...我猜是因为“连接”错误...但是 created_ad 包含有效日期! (时间戳)
标签: mysql sql date group-by sql-order-by