我希望在 Tableau 桌面版中提及 datediff 差异,例如 1 年、2 个月和 5 天。
我的年份和月份工作正常,我似乎无法理解白天的部分。有时括号错误或有时 dateadd 错误。
--This part works fine
STR(DATEDIFF('year', [start_dt], [end_dt])) + 'Year' + ' '+
STR((DATEDIFF('month', DATEADD('year', DATEDIFF('year', [start_dt] , [end_dt]), [start_dt]), [end_dt])))+' months'
-- This is where the issue is
STR(((DATEDIFF('day', DATEADD('month', DATEDIFF('month', DATEADD('year', DATEDIFF('year', [start_dt], [end_dt])),[start_dt], [end_dt]), [start_dt]), [end_dt] ))) + ' day'
使用不同 date_parts 的三个独立计算,您应该能够将它们连接起来:
DATEDIFF('year', [start_date], [end_date])
DATEDIFF('month', DATEADD('year', -DATEDIFF('year', [start_date], [end_date]), [end_date]), DATEADD('year', -DATEDIFF('year', [start_date], [end_date]), [start_date]))
DATEDIFF('day', DATEADD('month', -DATEDIFF('month', DATEADD('year', -DATEDIFF('year', [start_date], [end_date]), [end_date]), DATEADD('year', -DATEDIFF('year', [start_date], [end_date]), [start_date])), DATEADD('month', -DATEDIFF('month', DATEADD('year', -DATEDIFF('year', [start_date], [end_date]),[end_date]),DATEADD ('year' ,- DATEDIFF (' year ',[ start _ date ],[ end _ date ]),[ start _ date ])))
总的来说,这应该会产生想要的连接(因为它非常丑陋):
STR(DATEDIFF('year', [start_date], [end_date])) + " Year(s), " + STR(DATEDIFF('month', DATEADD('year', -DATEDIFF('year', [start_date ], [end_date]), [end_date]), DATEADD('year', -DATEDIFF('year', [start_date], [end_date]), [start_date]))) + " Month(s), " + STR (DATEDIFF('day', DATEADD('month', -DATEDIFF('month', DATEADD('year', -DATEDIFF('year', [start_date], [end_date]),[end_date]),DATEADD (' year' ,- DATEDIFF('年',[开始_日期],[结束_日期]),[开始_日期])), DATEADD('月', -DATEDIFF('月', DATEADD('年', -DATEDIFF('年',[开始日期],[结束日期]),[结束日期]),DATEADD('年',- DATEDIFF('年',[开始日期],[结束日期] ]),[开始_日期])))) + "天"
nb:这可能包括零,例如“1年0月0日”