我很难获得两个日期时间值之间的区别。
例如:
col1 col2
---------- ----------
11-04-2011 22-05-2033
12-05-2010 24-06-2045
,结果集应该是这样的:
11-01-2022
12-01-2035
感谢所有人,
Shashra
答案 0 :(得分:1)
使用DATEDIFF
,找出两个日期之间的天数。
此值的一半。
然后使用DATEADD
并将一半的日期添加到第一个日期。
declare @d1 datetime
,@d2 datetime
set @d1 = '11/4/2011'
set @d2 = '22/5/2033'
SELECT DATEADD(d, (DATEDIFF(d, @d1, @d2)/2), @d1)
因此,在您的查询中,您将使用:
SELECT DATEADD(d, (DATEDIFF(d, col1, col2)/2), col1)
FROM [Table]
答案 1 :(得分:0)
可能您的客户对日期(特定年,月和日)与持续时间(数量年,月,日)之间的差异感到困惑。从另一个日期中减去一个日期会导致后者,而不是前者。
这种混淆比人们常说的更常见。
答案 2 :(得分:0)
好吧,如果你真的想这样做,一个解决方案就是:
您可能需要使用cursor分别获取每一行。