【发布时间】:2019-04-30 01:53:04
【问题描述】:
一直在努力寻找解决此问题的方法。
我们正在远离 excel,并通过减去两个日期在几小时内将计算添加到 SQL 中。
问题是我们在 excel 中的结果与 SQL 不同。
这是我们在 excel 中的内容:
Change Date: 30/10/2018
Change Time: 10:53
Service Date: 29/10/2018
Service Time: 9:37
The Formula in excel is: =((Change Date+Change Time)-(Service Date+Service Time))*24
Fraction of hours 的结果是:25.26666667
使用 DATEDIFF 导入 SQL 的相同数据(语法如下):
datediff(second,CAST(CAST(CONVERT(DATETIME,Service_Date,103) as smalldatetime)
+ CAST(CONVERT(DATETIME,Service_Time,103) as smalldatetime) as smalldatetime),
CAST(CAST(CONVERT(DATETIME,Change_Date,103) as smalldatetime)
+ CAST(CONVERT(DATETIME,Change_Time,103) as smalldatetime) as smalldatetime)) /3600.0
给出结果:26.350000
有人知道如何解决这种差异吗?
提前致谢,
朱莉安娜
【问题讨论】:
-
我确实得到了相同的值
-
无法重现该问题。
-
我也没有发现差异。此外,在您的情况下,您不需要将值转换为 SMALLDATETIME。检查它而不强制转换: DATEDIFF(SECOND, CONVERT(DATETIME, Service_Date, 103) + CONVERT(DATETIME, Service_Time, 103), CONVERT(DATETIME, Change_Date, 103) + CONVERT(DATETIME, Change_Time, 103)) / 3600.0
-
请查看fiddle
标签: sql sql-server excel