【发布时间】:2020-07-18 09:33:18
【问题描述】:
我正在尝试按整个工作日和付款方式类型(卡、现金、条纹..)对付款表进行分组。事情是(而且我无法完成)工作日并不意味着从 00:00 到 00:00,而是它是用户输入值(通常是 08:00。我强制 08:00现在查询)。这是因为酒吧/餐厅从 00:00 到 00:00 不营业,但通常在凌晨 3 点或 4 点关门。我还想按日期排序结果(我已经这样做了)。
这是我目前得到的查询:
select * from (select SUM(value) as total, `currency`, `payment_method_type_id`, DATE_FORMAT(created_at, "%Y-%m-%d 08:00:00") as day from payments group by payment_method_type_id, DATE_FORMAT(created_at, "%Y-%m-%d 08:00:00"), currency) as ipd order by day desc
但结果不正确,因为分组时没有考虑时间。我想从昨天 08:00 到今天 08:00。
Here 对 DB Schema 和一些插入很感兴趣。
非常感谢,
【问题讨论】:
-
当您在查询中指定
DATE_FORMAT(created_at, "%Y-%m-%d 08:00:00") as day时,您认为 mysql 应该如何“考虑”时间? -
这是一个例子,避免使用vars
-
Time is not taken into account,你的意思是说你想要从昨天 08:00 到今天 08:00 分组的东西。如果是这样,请更改您的查询。 -
我们对“最小”一词有不同的解释
-
我不同意;我见过其中的一些。您提供的大约一千行中没有任何内容无法在 12 中解释。