3

StartDate日時のタイプを保持するフィールドを持つテーブルがあります。何千ものレコードがあり、このテーブルから返された特定の結果内の日数を見つける方法を探しています。たとえば、テーブルに次のデータがある場合:

ID | StartDate
--------------
1   01/01/2013 09:34:54
2   01/01/2013 11:23:21
3   04/11/2013 14:43:23
4   04/11/2013 17:13:03
5   04/25/2013 18:02:59
6   07/21/2013 02:56:12
7   10/01/2013 19:43:10

次に、2013 年 1 月 1 日の 2 つの日付が 1 としてカウントされ、2013 年 4 月 11 日も同じであるため、クエリは5を返す必要があります。

私が思いついた唯一のSQLは次のとおりです。

SELECT COUNT(DISTINCT(DATEPART(DAY, StartDate)))
FROM Stats
WHERE StartDate BETWEEN '01/01/2013' AND '12/31/2013' --This is just for filtering

ただし、月が考慮されていないため、これは4を返します。

どんな助けでも大歓迎です。

4

1 に答える 1