我想写一个基本的SQL查询,它输出从当前日期起3到15个月之间的所有日期:
DATEADD(month, 3, GETDATE()) AND (DATEADD(month, 15, GETDATE()))
虽然没有可供选择的表格。我只是想执行一个基本的SELECT来获取日期列表。这可能吗?
答案 0 :(得分:2)
以下内容可帮助您提取两个日期之间的所有日期。
DECLARE @Date1 DATE, @Date2 DATE
SET @Date1 = '2015-05-28'
SET @Date2 = '2015-06-30'
SELECT DATEADD(DAY,number+1,@Date1) [Date]
FROM master..spt_values
WHERE type = 'P'
AND DATEADD(DAY,number+1,@Date1) < @Date2
答案 1 :(得分:0)
虽然已经有一个已接受的答案,但我提出了一个不依赖于未记录和不受支持的系统表的替代方案。
declare @Date1 date = '2015-05-28';
declare @Date2 date = '2015-06-30';
declare @Dates table (Date Date);
while @Date1 <= @Date2
begin
insert into @Dates (Date) values (@Date1);
set @Date1 = DateAdd(Day, 1, @Date1);
end
select * from @Dates;