我想找到两个日期列之间的持续时间。为此,我使用 DATEDIFF 函数分别查找年份和月份,但希望在单列中同时显示两个结果。
下面给出两列。
start_dt | end_dt
06-Oct-2009 15-Jul-2011
需要的结果
Duration(years.months)
2.3
最佳答案
我认为没有开箱即用的 API 可以以您提到的格式提供结果。您需要使用 DATEDIFF
函数来获得您需要的最小面额的差异,然后将结果除以适当的值以获得所需格式的持续时间。像这样的东西:
DECLARE @start DATETIME
DECLARE @end DATETIME
DECLARE @duration INT
SELECT @start = '2009-10-06', @end = '2011-07-15'
SELECT @duration = DATEDIFF(mm, @start, @end)
SELECT CONVERT(NVARCHAR, @duration / 12) + '.' + CONVERT(NVARCHAR, @duration % 12)
这可以通过编写一个函数来更好地实现,该函数将采用日期和最少面额并以所需格式返回持续时间,因为它需要 TSQL,而普通 SQL 是不够的。
关于sql - 如何找到两个日期之间的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775480/