Crear una columna calculada en una fecha y hora
-
22-07-2019 - |
Pregunta
Tengo una columna DateTime anulable en mi tabla de SQL Server 2005 llamada DateTimeDeleted.
Me gustaría tener una columna calculada de tipo BIT que sea 1 si DateTimeDeleted no es nulo, de lo contrario 0. Sin embargo, parece que no puedo obtener la sintaxis correcta para la fórmula.
He intentado:
(TsDeleted IS NULL) = 0
pero me da un error de sintaxis.
¡Ayuda! :)
Solución
Alter Table MyTableName
Add IsDeleted As
(Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End)
Esto saldrá como un entero ... Si realmente quieres que sea un poco, entonces:
Alter Table MyTableName
Add IsDeleted As
cast( (Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End) as Bit)
Otros consejos
Creo que esto debería funcionar:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
Esto funcionará, básicamente divide por sí solo si no es nulo y luego divide 0 por 1 si es NULL
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow