提及日期差异作为年、月和日 - 画面

问题描述 投票:0回答:1

我希望在 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' 
sql date datediff tableau-desktop
1个回答
0
投票

使用不同 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日”

© www.soinside.com 2019 - 2024. All rights reserved.