1

CreatedOn次のような値で呼び出されるフィールドがあります。

2012-06-19 08:42:48.000
2012-06-19 08:43:05.000
2012-06-19 08:43:27.000
2012-06-19 08:53:22.000
...
2012-06-20 09:20:54.000
2012-06-20 09:21:13.000
...
2012-06-21 10:02:17.000
2012-06-21 11:43:19.000
...
2012-06-22 12:00:40.000
2012-06-22 12:11:56.000

... (weekend)


2012-06-25 13:00:13.000
2012-06-25 13:12:24.000
...
2012-06-26 13:41:27.000
2012-06-26 13:41:44.000
2012-06-26 13:42:01.000

6出力に -- (日)を表示したいと思います。しかし、週末を数えないほど簡単ではありません。数えない日が他にもあるかもしれません。データに基づいて確認するのが最善の方法です。

何か案は?

私は作ることができました:DATEDIFF(w, MIN(CreatedOn), MAX(CreatedOn))しかし、不正確であると述べたように、対応するデータのない日付を示しています.

4

2 に答える 2

1

2008年以降を想定

SELECT COUNT(DISTINCT (CAST (CreatedOn AS DATE))) AS NumberOfDays
FROM YourTable
于 2012-06-26T10:26:28.913 に答える
0

活動があった日を数えたいですか?以下は、必要以上に少し複雑です。

select COUNT(*) from (
select DATEADD(day,DATEDIFF(day,0,CreatedOn),0) as dt,COUNT(*) as cnt
from Table
group by DATEADD(day,DATEDIFF(day,0,CreatedOn),0)
) dayCounts

ただし、特定の日に関する詳細が必要な場合は、内部クエリを再利用できます。

于 2012-06-26T10:27:10.937 に答える