好的,这是一个奇怪的要求。我们正在尝试在 PeopleSoft 的报告中生成一个格式化的“年龄”声明,它提供了一个基于“TSQL”的构建器,这非常无用。我们不能使用存储函数,也不能将整个 SQL 语句作为一个东西来编辑。我们所能做的就是逐个字段地说出公式是什么,然后该工具会将所有元素连接在一起以生成查询。
因此,鉴于这种限制,我们如何才能将两个日期之间的差异格式化为人类可读的句子,例如。“14年3个月10天”
任何想法将不胜感激。
好的,这是一个奇怪的要求。我们正在尝试在 PeopleSoft 的报告中生成一个格式化的“年龄”声明,它提供了一个基于“TSQL”的构建器,这非常无用。我们不能使用存储函数,也不能将整个 SQL 语句作为一个东西来编辑。我们所能做的就是逐个字段地说出公式是什么,然后该工具会将所有元素连接在一起以生成查询。
因此,鉴于这种限制,我们如何才能将两个日期之间的差异格式化为人类可读的句子,例如。“14年3个月10天”
任何想法将不胜感激。
如果您可以使用字符串连接,这将为您提供年数:
DATEDIFF(yy, t.startdate, t.enddate)
这将为您提供月份:
DATEDIFF(mm,
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate),
t.enddate)
这将为您提供天数:
DATEDIFF(dd,
DATEADD(mm,
DATEDIFF(mm,
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate),
t.enddate),
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate)),
t.enddate)
您可以使用我在StackExchange Data Explorer上发布的已保存查询来查看和测试。它使用 Azure,使用 TSQL ...
你可以使用任何你喜欢的公式。您只需将返回类型和 SQL 函数放在表达式选项卡中,然后将表达式用作字段。