【发布时间】:2020-01-08 15:27:49
【问题描述】:
我试图以更精确的小数形式返回两个日期之间的年数。
例如:
如果差是 1 年 1 个月 15 天,我想 返回 1.15 或类似的值。最终,在这 例如,我想显示差异是 1 年 1 个月和 15 天 以十进制形式显示的差异。
我能够返回十进制值,但我不确定如何正确显示小数点后十位和百位。我确定我需要做一些数学运算才能正确显示。目前,我的代码只在小数点右侧返回零。
select
*,
cast((cast(begin_date as date) - cast(end_date as date) YEAR) as decimal (3,2)) AS year_diff
from
x
同样,预期结果将是 1.15 的值,介于 1 年、1 个月和 15 天之间的 2 个值之间。目前我只返回 1.00。
【问题讨论】:
-
您使用的是什么 SQL Server?另外,我可以用来测试的 2 个示例日期是什么?
-
查看this post 上的“更新”解决方案。您应该能够将其翻译为您的查询(目前无法正常工作,因此我无法真正为您做到这一点)。但是您应该能够在查询中复制它并用您的列替换变量。
-
你好@Stivan。我正在使用 Teradata sql。我认为使用和测试的 2 个日期是“2018-07-01”和“2019-08-16”。我希望看到返回的值类似于 1.15 或类似的值。谢谢。
-
感谢您的回复和参考@JacobH。我会看看那个帖子,看看我是否也能从那里弄清楚。
-
仅供参考:彻底回答问题非常耗时。如果您的问题已通过提供的解决方案得到解决,请通过选中一个为已接受或按向上箭头表示感谢。接受最适合您需求的解决方案。检查位于答案左上角的向上/向下箭头下方。 如果没有回答问题,请发表评论。 What should I do when someone answers my question?。谢谢。