MySql查询两个DateTime范围之间的每个间隔的记录

时间:2016-09-06 20:21:46

标签: php mysql datetime

以下MySQL查询有时提供记录: ... vaoID = glGenVertexArrays(); glBindVertexArray(vaoID); vboID = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, vboID); glBufferData(GL_ARRAY_BUFFER, Buffers.createFloatBuffer(positions), GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0); glEnableVertexAttribArray(0); // enable vertex attrib here //glBindBuffer(GL_ARRAY_BUFFER, 0); you dont want to unbind vbo from vao indexID = glGenBuffers(); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexID); glBufferData(GL_ELEMENT_ARRAY_BUFFER, Buffers.createIntBuffer(indices), GL_STATIC_DRAW); glBindVertexArray(0); // after you done } (可按3分组,如分组中所指定),但我想要记录时间08:00:00, 09:00:00, 12:00:00, 15:00:00 etc,即距我给定的开始时间的间隔。我怎样才能做到这一点?

08:00:00, 11:00:00, 14:00:00, 17:00:00 etc.

2 个答案:

答案 0 :(得分:1)

假设您希望记录与这些时间相对应的记录而不是这些时间间隔内的汇总度量....

SELECT *  
FROM  `data_10082016`  
WHERE CREATED_AT BETWEEN  "2016-08-11 08:00:00" AND  "2016-08-15 08:00:00" 
AND MOD(HOUR( DATETIME )+8, 3) = 0
ORDER BY  `data_10082016`.`id` ASC

将从上午8点起每隔3小时给你一次记录。

将记录最接近记录到小时是一件非常困难的事情,需要一个参考表。没有什么可以在SQL和大量时间内使用大量专业知识进行尝试。

答案 1 :(得分:0)

您只需在floor(...)函数中添加偏移量(+ 2,-7,...),例如

...
group by date(created_at), floor(hour(created_at) / 3) + 2
...