日期:2014-05-17  浏览次数:20381 次

DateDiff问题
请问大家,为什么 2011-12-31 与 2012-1-1 ,用此函数查相隔年数。为什么会是1年呢。才一天而已。
请不要说就是这么规定的。现在我想问为什么这么规定。有人知道吗。

------解决方案--------------------
select datediff(year,'2011-12-31','2012-01-01') 
既然取年部分的差值当然是1
datediff 返回跨两个指定日期的日期和时间边界数
比如这里的车datediff是截取年部分,算差值

------解决方案--------------------
你可以先从数据库取出来两个日期字符串,在C#中使用TimeSpan计算时间差。
------解决方案--------------------
那你就判断相隔几天来进一步优化吧
------解决方案--------------------
datediff是用来计算两个时间的差的。 你用year 它计算的就是相差的年份。 如你上面所说。想计算它相差多少天就得用day