我需要在Datastage转换器中以年,月和日期格式计算年龄
Example : SERVICE_DT = 02 Mar 1990
Current date= 22 Aug 2019
Output : 29 years 5 months 20 days
我在DS Transformer中开发了以下公式
((DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT))/365) :' Years ':( Mod(DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT),365)/30):' Months ': mod( Mod(DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT),365),30):' Days'
DSJobStartDate=Current date
上面的公式效果不佳,因为
服务日期1997-08-25它正在填充22年0个月1天,但正确的输出是21年11个月28天
((DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT))/365) :' Years ':( Mod(DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT),365)/30):' Months ': mod( Mod(DaysSinceFromDate(DSJobStartDate,TrimSpaces.SERVICE_DT),365),30):' Days'
服务日期1997-08-25它正在填充22年0个月1天,但正确的输出是21年11个月28天
答案 0 :(得分:0)
您的公式没有考虑具有366天的年份,并假设月份和天数基于30。
例如,DaysSinceFromDate假定从V11.3开始由DaysSinceFromDate2代替。
您可能要考虑改用YearFromDate,MonthFromDate和MonthDayFromDate。