que se enfrentaron a este problema en la siguiente consulta no funciona como se esperaba:
select 1 where getdate()<>null
esperamos que se muestran 1 porque getdate() no devuelve nulo. ¡Supongo que tiene algo que ver con el hecho de que SQL no ha emitido nulo como fecha y omite la fila! , por supuesto, sabemos que debemos usar IS o IS NOT keywords para comparar una variable con null, pero cuando se comparan dos parámetros, es difícil manejar la situación nula. como una solución puede crear su propia función de comparación como la siguiente:
CREATE FUNCTION [dbo].[fnCompareDates]
(
@DateTime1 datetime,
@DateTime2 datetime
)
RETURNS bit
AS
BEGIN
if (@DateTime1 is null and @DateTime2 is null) return 1;
if (@DateTime1 = @DateTime2) return 1;
return 0
END
y volver a escribir la consulta como:
select 1 where dbo.fnCompareDates(getdate(),null)=0
por qué no funciona? es la columna configurada para aceptar valores nulos? – Laurent
¿puede darnos su esquema actual para la tabla en cuestión y la consulta exacta que está utilizando (si simplificó la consulta para los fines de la pregunta)? ¡Lo que estás haciendo debería funcionar bien! – robsoft
"obviamente no funciona" ¿Por qué dices eso? Me funcionó la última vez que lo intenté. – Anthony