2015-10-20 26 views
0

我试图让使用DATEDIFF两个日期的时间间隔(年),但只计算年。 为一个例子,如何从两个日期获取间隔?

SELECT DATEDIFF(year, '2005-01-03', '2006-01-01'); 

的结果是1,但得到的结果应该是0,因为日期仍01是一月份。

有没有其他办法?

+0

你在乎结果的准确性时,闰年开始发挥作用? –

+0

都没有,所以这里的问题,我想这样做,查询 'SELECT * FROM员工 其中(DATEDIFF(DAY,雇佣日期,GETDATE())/ 365)%6 = 0 AND(GETDATE() BETWEEN DATEADD(日,-6,CAST(STUFF(CONVERT(VARCHAR(23),雇佣日期,121),1,4,CAST(YEAR(GETDATE())AS VARCHAR(4)))AS DATETIME)) AND DATEADD(个月,6,CAST(STUFF(CONVERT(VARCHAR(23),雇佣日期,121),1,4,CAST(YEAR(GETDATE())AS VARCHAR(4)))AS DATETIME)))' 显示所有雇员那是6年或多倍,并在今年入职前后6个月。那可能吗? – susiana

+0

您的评论中的问题与原始问题非常不同。我建议提出一个新问题。清楚解释你的问题。显示你所拥有的查询,并解释你想要达到的目标。提供一些示例,几行示例数据以及您期望作为查询结果的内容。如果你问这样的问题,你很快就会得到很好的答案。目前在评论中不可能(对我来说)理解你的问题。 –

回答

0
SELECT DATEDIFF(DAY, '2005-01-03', '2006-01-01')/365; 
0
SELECT FLOOR(DATEDIFF(day, '2005-01-03', '2006-01-01')/365) 
相关问题