如何比较SQL Server 2005中的两个日期时间值?

时间:2011-04-08 06:23:25

标签: sql sql-server sql-server-2005

我需要比较SQL Server 2005中的两个datetime值,如下所示。

 case when min(@datetime1) < max(@datetime2) then 0 else 1 end

我尝试使用上述条件,甚至将datetime数据类型转换为varchar。但我无法执行它。有人能帮助我吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

比较时,您的DateTime变量周围似乎有额外的不必要的括号 - 试试这个:

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

对我来说效果很好,并在执行时返回值0

此外,您根本不需要任何MIN()MAX()函数或类似的东西 - 只需比较两个变量就可以了!这就是真正的变量!

答案 1 :(得分:0)

我尝试了相同的查询然后我得到了答案,这个查询是

" SELECT a=CASE WHEN min(OrderDate) < max(OrderDate) THEN 0 ELSE 1 END FROM Orders WHERE OrderID = 10248 AND EmployeeID = 5 GROUP BY OrderDate " 



这是正常的..

答案 2 :(得分:0)

您在CREATED_ON列中可能有一些空值。