J'ai besoin de comparer deux valeurs datetime
dans SQL Server 2005 comme ci-dessous.
case when min(@datetime1) < max(@datetime2) then 0 else 1 end
J'ai essayé avec la condition ci-dessus même en convertissant le datatype datetime
en varchar
. Mais je ne suis pas capable de l'exécuter. Quelqu'un peut-il m'aider?
Merci d'avance
Vous semblez avoir des parenthèses supplémentaires et inutiles autour de vos variables DateTime
lors de la comparaison – essayez ceci:
declare @datetime1 datetime set @datetime1 = '2008-09-03 10:42:46.000' declare @datetime2 datetime set @datetime2 = '2009-01-20 19:26:16.053' select case when @datetime1 < @datetime2 then 0 else 1 end
Fonctionne très bien pour moi, et renvoie la valeur 0
lorsqu'il est exécuté.
De plus, vous n'avez pas besoin de fonctions MIN()
ou MAX()
ou quoi que ce soit de ce genre – il suffit de comparer les deux variables et c'est tout ce qu'il y a vraiment!
Vous avez probablement des valeurs nulles dans la colonne CREATED_ON.
J'ai essayé la même requête alors
J'ai eu une réponse et cette requête est
" SELECT a=CASE WHEN min(OrderDate) < max(OrderDate) THEN 0 ELSE 1 END FROM Orders WHERE OrderID = 10248 AND EmployeeID = 5 GROUP BY OrderDate "
et cela fonctionne correctement ..