无法获得声明添加日期和道琼斯指数

时间:2017-06-14 20:06:44

标签: sql

这应该很简单,但我不知道为什么这不会起作用“ 我试图在表格中插入一个日期和星期几,除了星期天。如果我删除了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

1 个答案:

答案 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