我有几个数据和日期mysql“datetime”值。我需要从给定的时间段返回总计数。
例如:
In time Out Time
2012-02-02 10:00 2012-02-02 12:00
2012-02-02 09:00 2012-02-02 14:00
2012-02-02 10:00 2012-02-02 11:00
我需要从 2012-02-02 10:00 到 2012-02-02 11 <总计 3 :00
答案 0 :(得分:2)
我假设您想要计算期间In time
到Out time
的任何部分属于您的搜索日期期间或与之重叠的项目。
首先,让我们详尽地研究日期中“重叠”的含义。重叠是以下任何一种情况:
Start1 End1 --------------------------------------------------------------------------------- Start2 End2 Start2 End2 Start2 End2
并且不是以下任何一种情况:
Start1 End1 --------------------------------------------------------------------------------- Start2 End2 Start2 End2
如果你仔细观察,你会发现Start2 < End1 AND End2 > Start1
定义了这种关系,所以这将成为你的WHERE
条款。
因此,您应该尝试以下方法:
SELECT COUNT(*)
FROM myTable
WHERE '2012-02-02 10:00:00' <= `Out Time`
AND '2012-02-02 11:00:00' >= `In Time`
答案 1 :(得分:1)
撰写此查询
select count(*) from table name where `In time` <= '2012-02-02 10:00' and `Out Time` >= '2012-02-02 11:00'
它会给你数3