from_date to_date duration
-------------------------------------
2018-10-01 2018-10-10 9
2018-10-05 2018-10-07 3
如果我提供输入@from_date = 2018-10-01, to_date = 2018-10-11
,我想显示为9
答案 0 :(得分:1)
那呢:
SELECT DATEDIFF(DAY,'20181001','20181011')-1
答案 1 :(得分:0)
--To select a single value per row
SELECT
DATEDIFF(DAY,from_date,to_date) as duration
FROM
SomeTable
您可以应用WHERE子句来仅过滤要返回持续时间的特定行,或者将DATEDIFF函数包装在AVG()或SUM()中以获取表中所有时间的平均值或总计。您可以使用T-SQL做各种非常复杂的事情。例如,以下查询将为您提供2017年开始日期(起始日期)的每个月的平均持续时间。
E.G。 -
SELECT
DATEPART(Month, from_date) as Month,
AVG(DATEDIFF(DAY, from_date, to_date) as AvgDuration
FROM SomeTable
WHERE
DATEPART(Year, from_date) = 2017
GROUP BY
DATEPART(Month, from_date)
希望这会有所帮助。如果没有,请再试一次。 :)