从15分钟开始获得结果

时间:2013-07-22 14:47:00

标签: php mysql sql

你好我有一个SQL问题,我得到的结果,但我想要的是开始15分钟。

这是我当前的查询:

SELECT CONCAT(CAST(DATE_FORMAT(date_added, '%h') AS CHAR(2)), ':',  
CAST(DATE_FORMAT(date_added, '%m') AS CHAR(2))) timer, 
COUNT(*) ctrRes from tbl1 WHERE id = 1 AND cat = 2
GROUP BY ( 3 * HOUR( date_added ) + FLOOR( MINUTE( date_added ) / 15 ))

示例结果:

计时器| ctrRes

01:28 | 1

01:44 | 22

02:14 | 253

02:29 | 238

有没有办法让记录从00:15开始,无论空结果如何。感谢。

1 个答案:

答案 0 :(得分:0)

看起来你想要返回一条记录,无论某个时间段是什么。好吧,MySQL必须有一些东西可以返回。 SQL用于检索数据,而不是生成数据,因此如果数据不存在,则无法获取数据。因此,您需要一些方法来创建数据,以便您可以检索它。

您可以在每次查询时临时创建此数据,也可以在实际表中实现数据。如果您经常运行此查询,我建议您实现数据。有一个关于创建日期的示例:https://gist.github.com/johngrimes/408559您可以自定义它以生成时间而不是日期。

然后结果变成:

select * from TimeTable left join tbl1 on ... where <some range criteria>