gpt4 book ai didi

sql-server - 日期差异(带小数的月份)

转载 作者:行者123 更新时间:2023-12-03 01:42:06 25 4
gpt4 key购买 nike

我的查询如下:

SELECT DATEDIFF(MONTH, convert(datetime,'01/01/2015',103),convert(datetime,'15/02/2015',103) )

我只得到 1 个月的结果。

我需要 1.5 个月得到结果。 (指1个月15天)。

如何获得输出?

最佳答案

试试这个,它将计算一个月“已使用”的确切百分比。它应该适用于所有日期。

DECLARE @from date = '2015-01-01'
DECLARE @to date = '2015-02-15'

SELECT
datediff(month, @from, @to) - 1 +
1-1.0*(day(@from)-1)/ day(dateadd(m, datediff(m,-1, @from), -1))
+ 1.0*(day(@to)-1)/ day(dateadd(m, datediff(m,-1, @to), -1))

结果:

1.5

请注意

from date = '2015-03-02'
to date = '2015-04-02'

将在 1.001075268817 中给出比 1 稍高的结果,因为在“from”之前经过的 3 月份的百分比比“to”之前经过的 4 月份的百分比要小

关于sql-server - 日期差异(带小数的月份),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com