【发布时间】:2015-08-17 17:40:59
【问题描述】:
我有一个查询,我试图在数据库中查找某个时间范围内查看某项内容的次数。
这是我目前的查询:
USE DB1
SELECT DISTINCT NAME,
COUNT(*) AS COUNT
FROM LOGS
WHERE EVENT = 'Viewed'
AND TIME BETWEEN '2015-04-22 00:00:00.000' AND '2015-07-24 00:00:00.000'
GROUP BY NAME
ORDER BY COUNT DESC;
这个查询成功地告诉我在这 3 个月的范围内查看了多少次,但是当我将时间范围缩短到三个不同的查询时,该特定行从:
TIME BETWEEN '2015-04-22 00:00:00.000' AND '2015-05-22 00:00:00.000';
TIME BETWEEN '2015-05-22 00:00:00.000' AND '2015-06-22 00:00:00.000';
TIME BETWEEN '2015-06-22 00:00:00.000' AND '2015-04-24 00:00:00.000';
然后,当我将不同的值相加时,它们不相等。事实上,它们比我在三个月范围内的第一个查询中获得的行数要高得多。我假设某些值是重叠的。我怎样才能解决这个问题?我检查了我的工作,我很确定第一个查询在时间范围内给了我正确的行数,但我需要更具体的数据
【问题讨论】:
标签: sql datetime time overlap between