我收到报告,其中数据是ETL自动ETL.我提取并转换了一些数据,将其加载到其他地方.我需要做的一件事是DATEDIFF,但这一年需要准确(即4.6年,而不是四舍五入.
以下是我的脚本:
select *,DATEDIFF (yy,Begin_date,GETDATE()) AS 'Age in Years' from Report_Stage;
‘Age_In_Years’列正在四舍五入.我如何获得多年的确切日期?
解决方法
您是否尝试过几个月来改变差异,然后以这种方式计算年数?例如30个月/ 12年将是2.5年.
SELECT CONVERT(date,GetDate() - 912) AS calcDate,DATEDIFF(DAY,GetDate() - 912,GetDate()) diffDays,GetDate()) / 365.0 diffDaysCalc,DATEDIFF(MONTH,GetDate()) diffMonths,GetDate()) / 12.0 diffMonthsCalc,DATEDIFF(YEAR,GetDate()) diffYears