27,579
社区成员
发帖
与我相关
我的任务
分享
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[CreateDate] DATETIME)
Insert #T
select 1,'2019-10-16 10:10:10' union all
select 2,'2019-10-14' union all
select 3,'2019-10-10' union all
select 4,'2019-10-16 11:10:10' union all
select 5,'2019-10-01' union all
select 6,'2019-10-05' union all
select 7,'2019-10-08'
Go
--测试数据结束
SELECT DATEADD(DAY, number, CONVERT(DATETIME, '2019-10-01')) [DataTime],
ISNULL(Count,0) Count
FROM master..spt_values
LEFT JOIN (SELECT CONVERT(DATE,CreateDate) AS CreateDate,COUNT(1) AS Count FROM #T GROUP BY CONVERT(DATE,CreateDate))t
ON DATEADD(DAY, number, CONVERT(DATETIME, '2019-10-01')) = [CreateDate]
WHERE type = 'P'
AND number
BETWEEN 0 AND DATEDIFF(DAY, '2019-10-01', DATEADD(MONTH, 1, '2019-10-01'))-1;
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[CreateDate] Date)
Insert #T
select 1,'2019-10-16' union all
select 2,'2019-10-14' union all
select 3,'2019-10-10' union all
select 4,'2019-10-16' union all
select 5,'2019-10-01' union all
select 6,'2019-10-05' union all
select 7,'2019-10-08'
Go
--测试数据结束
SELECT DATEADD(DAY, number, CONVERT(DATETIME, '2019-10-01')) [DataTime],
ISNULL(Count,0) Count
FROM master..spt_values
LEFT JOIN (SELECT CreateDate,COUNT(1) AS Count FROM #T GROUP BY CreateDate)t
ON DATEADD(DAY, number, CONVERT(DATETIME, '2019-10-01')) = [CreateDate]
WHERE type = 'P'
AND number
BETWEEN 0 AND DATEDIFF(DAY, '2019-10-01', DATEADD(MONTH, 1, '2019-10-01'))-1;