Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 定义18:00和次日18:00之间的日期_Mysql_Sql_Group By - Fatal编程技术网

Mysql 定义18:00和次日18:00之间的日期

Mysql 定义18:00和次日18:00之间的日期,mysql,sql,group-by,Mysql,Sql,Group By,我希望有一个查询,从前一天的18:00到当天的18:00,这是一个24小时的时间段,然后根据该金额对交易进行分组 一般的想法是使查询与银行业务日终报告保持一致,该报告不是在自然日运行,而是在18:00到18:00之间运行 我是MySQL新手,我想知道是否可以使用interval或date函数来简化这个查询,或者推荐的方法是什么 下面是当前查询的一个片段,它按整个日期(午夜到午夜)分组。我正在寻找一个函数,可以取代GROUPBY子句中的DATE_格式 SELECT DATE_FORMAT(tota

我希望有一个查询,从前一天的18:00到当天的18:00,这是一个24小时的时间段,然后根据该金额对交易进行分组

一般的想法是使查询与银行业务日终报告保持一致,该报告不是在自然日运行,而是在18:00到18:00之间运行

我是MySQL新手,我想知道是否可以使用interval或date函数来简化这个查询,或者推荐的方法是什么

下面是当前查询的一个片段,它按整个日期(午夜到午夜)分组。我正在寻找一个函数,可以取代GROUPBY子句中的DATE_格式

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 

因此,我最终使用了一个简单的测试,然后在日期上添加一天,使用以下命令

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

有MySQL的,它应该完全帮助你out@NicoHaaseBetween在WHERE子句中很有用,它也可以在group by中使用吗?我以前从未见过这样使用它。为什么要在WHERE子句中对多个值使用GROUP BY?您已将查询编辑为可以正常工作的内容,如果不能正常工作,则应指定无法正常工作的内容