第二天18:00到18:00之间定义一天

时间:2017-12-06 08:44:22

标签: mysql sql group-by

我希望每天从前一天的18:00开始查询,直到当天的18:00,这是一个24小时的时段,然后按该金额进行分组交易。

一般的想法是使查询与银行结束日报告一致,该报告不是在自然日运行,而是在18:00到18:00运行。

我是MySQL的新手,我想知道是否有使用间隔或日期函数可以简化此查询,或建议的方法是什么。

以下是当前查询的片段,该片段在整个日期(午夜到午夜)进行分组。我正在寻找一个可能替换group by子句中的DATE_FORMAT的函数。

SELECT DATE_FORMAT(totals.created_at,"%D %M %Y") as 'Date', warehouse.title ,sum(grand_total)
FROM totals
Join warehouse on warehouse.warehouse_id = totals.stock_id
WHERE
totals.created_at BETWEEN (NOW() - INTERVAL 21 DAY) AND NOW()
GROUP BY  totals.stock_id, DATE_FORMAT(totals.created_at, "%Y-%m-%d")
ORDER BY totals.created_at,warehouse.title 

1 个答案:

答案 0 :(得分:0)

所以我最后使用一个简单的测试,然后使用以下内容在日期中添加一天。

DATE_ADD(totals.created_at, INTERVAL CAST(time(totals.created_at) > time("18:00") AS SIGNED INTEGER) DAY )