打印从年初到最后一天的所有日期

Print all days from beginning of year till last

我下面的代码没有正确执行。 请帮我打印哪里出错了。

alter procedure dbo.display
as
begin
declare @start date
declare @end date


set @start=DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
set @end =DATEADD(yy,DATEDIFF(yy,0,getdate())+1,-1)

while(@start>@end)
begin
select @start
end
set @start=DATEADD(DD,1,@start)
end

您的代码中有两个问题:

  • while条件(应该是<,不是>
  • 循环外的set

试试下面的代码:

declare @start date
declare @end date

set @start = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)
set @end = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) 

while(@start <= @end)
begin
    print @start
    set @start = DATEADD(DD,1,@start)
end

尽情享受吧!