这应该很简单,但我不知道为什么这不会起作用“ 我试图在表格中插入一个日期和星期几,除了星期天。如果我删除了DOW,那么Statement就可以了。该表应该有30个条目。
提前感谢您的帮助。
Declare @StartDate as Date = DateAdd(day,-30,GetDate())
Declare @dateCnt as Int
Set @dateCnt = 0
While @dateCnt <= 30
Begin
Insert Into temp_ProdSaleInv (ProdDate,DOW)
Values(
Convert(varchar(10),DateAdd(day,@datecnt,@startDate),101),
DateName(dw,DateAdd(dw,@datecnt,@startDate)
)
Set @dateCnt = @dateCnt + 1
End
感谢您的帮助,有时您无法看到森林中的树木,
我的问题是我现在不希望星期日在桌子上。我添加了一个case语句,并在CASE,Set和End附近收到语法错误 见下文
Declare @StartDate as Date = DateAdd(day,-30,GetDate())
Declare @dateCnt as Int
Set @dateCnt = 0
set @DW1 as String
While @dateCnt <= 30
@DW1 = DATENAME(dw, DATEADD(day,@dateCnt, @StartDate))
CASE WHEN @DW1 <> 'Sunday' THEN
Begin
Insert Into temp_ProdSaleInv (ProdDate,DOW)
Values(
Convert(varchar(10),DateAdd(day,@datecnt,@startDate),101),
DateName(dw,DateAdd(dw,@datecnt,@startDate)
)
Set @dateCnt = @dateCnt + 1
END
End
答案 0 :(得分:1)
你错过了一个结束括号:
Declare @StartDate as Date = DateAdd(day,-30,GetDate())
Declare @dateCnt as Int
Set @dateCnt = 0
While @dateCnt <= 30
Begin
Insert Into temp_ProdSaleInv (ProdDate,DOW)
Values(
Convert(varchar(10),DateAdd(day,@datecnt,@startDate),101),
DateName(dw,DateAdd(dw,@datecnt,@startDate)
)) -- <<<< Here
Set @dateCnt = @dateCnt + 1
End