Sql server 2008 计算柱
我想在一个表中添加一列来计算另外两列中两个日期之间的周数。各栏分别为:Sql server 2008 计算柱,sql-server-2008,tsql,Sql Server 2008,Tsql,我想在一个表中添加一列来计算另外两列中两个日期之间的周数。各栏分别为: [DateStart] [date] NULL, [DateEnd] [date] NULLNumOfWeeks, [NumOfWeeks] [int] 如果结束日期为空,则计算时间为开始日期和当前日期之间的周数 干杯, 凯文。简单: ALTER TABLE [table] ADD [NumOfWeeks] AS DATEDIFF(week, DateStart, COALESCE(DateEnd, GETDATE())
[DateStart] [date] NULL,
[DateEnd] [date] NULLNumOfWeeks,
[NumOfWeeks] [int]
如果结束日期为空,则计算时间为开始日期和当前日期之间的周数
干杯,
凯文。简单:
ALTER TABLE [table] ADD
[NumOfWeeks] AS DATEDIFF(week, DateStart, COALESCE(DateEnd, GETDATE())
下面是同样有效的案例方法
ALTER TABLE Timeslots ADD
[NumOfWeeks] AS DATEDIFF(week, DateStart, CASE when DateEnd IS NULL THEN GETDATE() Else DateEnd END)
结果将是3,即完整周数。除非结束日期为空,否则啦啦队的表现完美。如果结束日期为空,则计算应为开始日期和当前日期之间的周数。干杯。我在回答中添加了这个案例。语法中似乎有两个问题:关键字“IS”附近的语法不正确。GETDATE()上的右括号表示“')”附近有不正确的语法。应为“(”或select。我正在使用SQL Express 2008:-)有趣。那个代码对我有用,我刚试过。我不确定使用SQLExpress2008进行此操作有什么限制。我会调查的。另一方面,为什么要使用计算列?为什么不在select语句中执行测试?这似乎更加有力。