TSQL计算每天发生的次数

Bri*_*ard 2 sql

我有一个表格,可以将访问者注册到网站.我想算一下每天有多少人访问过我的网站.

不同日期时间值的列

我的问题是我无法弄清楚如何对日期时间值进行类型转换,以便在进行明确计数时不使用整个日期字段.

有谁能解释一下?

Eri*_*ikE 9

SELECT
   DateWithNoTimePortion = DateAdd(Day, DateDiff(Day, '19000101', DateCol), '19000101'),
   VisitorCount = Count(*)
FROM Log
GROUP BY DateDiff(Day, 0, DateCol);
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我假设您使用的是SQL Server.如果不是这样,请告诉我们.我认为该DateDiff方法可以在其他DBMS中使用,具体取决于它们支持的功能,但是它们可能有更好的方法来完成这项工作(例如TRUNC在Oracle中).

在SQL Server中,上述方法是完成工作的最快方法之一.只有两种更快的方法:

当SQL Server 2008不可用时,我认为我发布的方法是未来开发人员查看代码的速度和清晰度的最佳组合,避免做出不明确的魔术.您可以看到备份我的速度声明的测试.