【发布时间】:2019-02-28 08:03:26
【问题描述】:
我正在使用SQL Server 2014 并且我有以下T-SQL 查询,它从Date Dimension 表中检索每个月第一天的日期(基于我的过滤器):
SELECT * FROM (
SELECT DATEADD(month, DATEDIFF(month, 0, [date]), 0) AS [Date2]
FROM DateDimension
WHERE [date] BETWEEN '2018-07-01' AND '2019-06-01'
) x
GROUP BY x.[Date2]
输出如下:
Date2
2018-07-01 00:00:00.000
2018-08-01 00:00:00.000
2018-09-01 00:00:00.000
2018-10-01 00:00:00.000
2018-11-01 00:00:00.000
2018-12-01 00:00:00.000
2019-01-01 00:00:00.000
2019-02-01 00:00:00.000
2019-03-01 00:00:00.000
2019-04-01 00:00:00.000
2019-05-01 00:00:00.000
2019-06-01 00:00:00.000
我使用嵌套查询来实现这一点。我的问题是我是否可以在不使用嵌套查询的情况下获得相同的结果。我的Date Dimension 表是一个包含每日日期的表。
【问题讨论】:
-
可能是我搞错了,但你提供的代码对我来说没有多大意义......只是
WHERE DAY([date])=1?
标签: sql sql-server tsql date group-by