日期差异(以年为单位)年分数

Pin*_*ing 6 sql t-sql sql-server-2008

有没有一种简单的方法来计算两个日期之间的差异:

  1. 将其表示为包含的年数.年份分数; 和
  2. 考虑到闰年?

例如,2011年3月1日至2012年3月1日之间的差异为1年.但是,如果我使用DATEDIFF(day,..,..)并除以365,由于闰年,我得到1.00274的(不合需要的)答案.

需要说明的是,我也需要任何年份分数(即不仅仅是整年).例如,2011年3月1日至2012年3月3日之间的差异为1.005479(1年+ 2/365年).2011年3月1日至2012年2月29日之间的差异为0.997268(0年+ 365/366年)

因此,总而言之,上述两个示例中的输出(在DECIMAL(7,6)中)将是:

1.000000 1.005479 0.997268

小智 0

尝试这个,

SELECT Cast(DateDiff(yyyy, '2011-03-01', '2012-03-01') As VARCHAR) + 'Yer : '
+ Cast(DateDiff(mm, '2011-03-01', '2012-03-01') As VARCHAR) + 'Mon : '
+ Cast(DateDiff(dd, '2011-03-01', '2012-03-01') As VARCHAR) + 'Dte'
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助,谢谢。