在日期时间创建计算列

时间:2009-01-14 04:03:04

标签: sql-server-2005 calculated-columns

我的SQL Server 2005表中有一个可为空的DateTime列,名为DateTimeDeleted。

我希望有一个BIT类型的计算列,如果DateTimeDeleted不为null,则为1,否则为0.但是,我似乎无法使公式的语法正确。

我试过了:

(TsDeleted IS NULL) = 0

但它给我一个语法错误。

帮助! :)

3 个答案:

答案 0 :(得分:12)

Alter Table MyTableName 
  Add IsDeleted As 
     (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End)

这将以整数形式输出...如果你真的想要它,那么:

Alter Table MyTableName 
  Add IsDeleted As 
     cast( (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End) as Bit)

答案 1 :(得分:2)

我认为这应该有效:

update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end

答案 2 :(得分:-1)

这将起作用,如果它不为空则基本上它会自动除以然后如果它为NULL则将0除以1

CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))