Mysql 查询两个日期小时和分钟之间的时间

Mysql 查询两个日期小时和分钟之间的时间,mysql,hour,minute,Mysql,Hour,Minute,我的mysql查询有问题,似乎找不到任何相关的内容 我的表中有一个日期列,称为Date。格式为YYYY-MM-DD HH:MM:SS 我试图计算几天内的所有数据,但仅当日期介于08:30:00和18:30:00之间时 我知道如何使用HOURdate,但我不知道如何将分钟数集成到查询中 我一直在考虑使用案例,但我不太确定 任何帮助都会很好 致以最良好的祝愿, 切斯克 使用我一直在执行的查询进行编辑: select count(*), YEAR(date), MONTH(date), DAY(dat

我的mysql查询有问题,似乎找不到任何相关的内容

我的表中有一个日期列,称为Date。格式为YYYY-MM-DD HH:MM:SS

我试图计算几天内的所有数据,但仅当日期介于08:30:00和18:30:00之间时

我知道如何使用HOURdate,但我不知道如何将分钟数集成到查询中

我一直在考虑使用案例,但我不太确定

任何帮助都会很好

致以最良好的祝愿, 切斯克

使用我一直在执行的查询进行编辑:

select count(*), YEAR(date), MONTH(date), DAY(date)
from table
where YEAR(date) = 2014
AND HOUR(date) between 08 and 19
group by YEAR(date), MONTH(date), DAY(date);
也可以使用MINUTEdate:

也可以使用MINUTEdate:


我建议在小时比较中减去30分钟:

select count(*), YEAR(date), MONTH(date), DAY(date)
from table
where YEAR(date) = 2014 AND
      HOUR(date - interval 30 minute) between 08 and 17
group by YEAR(date), MONTH(date), DAY(date);
请注意,上限为17,假设间隔在18:30:00之前结束,例如18:29:59.999

您还可以表示为:

select count(*), YEAR(date), MONTH(date), DAY(date)
from table
where YEAR(date) = 2014 AND
      TIME(date) BETWEEN TIME('08:30:00') and TIME('18:30:00')
group by YEAR(date), MONTH(date), DAY(date);

我建议在小时比较中减去30分钟:

select count(*), YEAR(date), MONTH(date), DAY(date)
from table
where YEAR(date) = 2014 AND
      HOUR(date - interval 30 minute) between 08 and 17
group by YEAR(date), MONTH(date), DAY(date);
请注意,上限为17,假设间隔在18:30:00之前结束,例如18:29:59.999

您还可以表示为:

select count(*), YEAR(date), MONTH(date), DAY(date)
from table
where YEAR(date) = 2014 AND
      TIME(date) BETWEEN TIME('08:30:00') and TIME('18:30:00')
group by YEAR(date), MONTH(date), DAY(date);
尝试:

尝试:


你知道,这比使用时间函数看起来要容易

SELECT COUNT(*), DATE(`date`)
  FROM table
 WHERE TIME(`date`) BETWEEN '08:30' AND '18:30'
 GROUP BY DATE(`date`)
如果您想在8:30之前但不包括18:30,请使用此选项。在用于时间范围时,以一个错误而臭名昭著

SELECT COUNT(*), DATE(`date`)
  FROM table
 WHERE TIME(`date`) >= '08:30'
   AND TIME(`date`) <  '18:30'
 GROUP BY DATE(`date`)

你知道,这比使用时间函数看起来要容易

SELECT COUNT(*), DATE(`date`)
  FROM table
 WHERE TIME(`date`) BETWEEN '08:30' AND '18:30'
 GROUP BY DATE(`date`)
如果您想在8:30之前但不包括18:30,请使用此选项。在用于时间范围时,以一个错误而臭名昭著

SELECT COUNT(*), DATE(`date`)
  FROM table
 WHERE TIME(`date`) >= '08:30'
   AND TIME(`date`) <  '18:30'
 GROUP BY DATE(`date`)

向我们展示您已经试用过的SQL,很抱歉。向我们展示您已经试用过的SQL,很抱歉。我没有想到要这样做,非常感谢,它很有效我没想过要这么做,非常感谢,它很有效