在mysql中将日期\时间列分组为小时、日和周数据

在mysql中将日期\时间列分组为小时、日和周数据,mysql,Mysql,我不熟悉php和MySql数据库 我的数据库由日期\u时间%m-%d-%Y%h:%i:%s作为列1,计数为列2,tablename dataforchart 我希望将这些数据分为小时数据、每周数据和小时数据,但我无法得到预期的结果,因为: 星期一 日期/时间计数 2017年1月17日至2017年1月24日 --- -- ----- 等等 它应该从任何一天开始动态地将数据分组为几周 我只能够到 设置日期优先1 SELECT CAST(MIN(01

我不熟悉php和MySql数据库 我的数据库由日期\u时间%m-%d-%Y%h:%i:%s作为列1,计数为列2,tablename dataforchart

我希望将这些数据分为小时数据、每周数据和小时数据,但我无法得到预期的结果,因为: 星期一 日期/时间计数 2017年1月17日至2017年1月24日 --- -- -----

等等 它应该从任何一天开始动态地将数据分组为几周 我只能够到 设置日期优先1

SELECT CAST(MIN(01-15-2017) AS VARCHAR(20))+' TO '+CAST (MAX(01-21-2017) AS VARCHAR(20)) AS DATE,
       SUM(`count`) AS count,
FROM   dataforchart
GROUP BY DATEPART(WEEK,01-15-2017)
HAVING COUNT(DISTINCT 01-21-2017)=7
把日期定在7号


但这也无济于事

请记住,使用MySql中已经存在的DATETIME,其值为'YYYY-MM-DD HH:MM:SS'格式-这是一种国际格式ISO 8601。在MySQL中,有许多内置函数,如Month aso。我尝试了week和Month函数,但仍然无法达到所需的输出。如果您能指导我使用$result=mysql\u querySELECT*FROM dataforcart where date\u time介于'01/10/2017%'等,这将是一个很大的帮助'01/16/2017%'; $row=mysql\u fetch\u array$result{echo$row['date\u time'.\t.$row['count'.\n;}给我错误,mysql\u fetch\u array希望参数1是资源,布尔giveto开始,我同意您应该使用内置的日期和时间数据类型,这样您就可以使用内置函数进行比较和搜索。就您试图计算的实际数据而言,DATE_ADD函数可能就是您在这里想要的。