我想更新表[DAY]
中的列,但没有意识到也有内置函数DAY
。因此,我不小心更新了DAY
值,而是使其显示'N.A'
,这是我设置的值。
我尝试在google上搜索,但没有找到匹配项,尝试在SQL Server上找到内置函数,但无济于事。
更新代码是这样的:
UPDATE v_ClassroomOccupancy SET
[DAY] = (CASE WHEN (LocalTime NOT BETWEEN CLASSSTARTDATE AND CLASSENDDATE) THEN 'N.A' ELSE DAY END)
我可以通过任何方式将DAY
内置函数重置或设置为默认值吗?
答案 0 :(得分:1)
DAY
是SQL Server
中的保留关键字,因为您已经将列命名为DAY
,所以每次使用此列时,请确保将其括在括号[]
中
UPDATE v_ClassroomOccupancy SET
[DAY]=(CASE WHEN(LocalTime NOT BETWEEN CLASSSTARTDATE AND CLASSENDDATE) THEN 'N.A' ELSE [DAY] END)
要重置[DAY]
列,请使用getdate()
函数获取当前的datetime
UPDATE v_ClassroomOccupancy SET
[DAY]=(CASE WHEN GETDATE() NOT BETWEEN CLASSSTARTDATE AND CLASSENDDATE THEN 'N.A' ELSE datename(dw, GETDATE()) END)