首页 > 解决方案 > 计算日期差以在 SQLDB 中不四舍五入获得输出

问题描述

我想计算两个日期之间的日期差异,并且输出在 SQL DB 中将没有舍入。

Date1: 2017-07-16 16:01:00.0000000
Date2: 2017-10-10 00:00:00.0000000
output would be: 85,3326388888891

我写了 sql 查询,但没有得到确切的结果:

select (datediff(d, '2017-07-16 16:01:00.0000000', '2017-10-10 00:00:00.0000000')) 

86作为输出。

标签: sqlsql-server

解决方案


您可以使用以下语句得到预期的结果,但重要的问题是为什么需要这样的计算(两个日期之间的天数,基于秒或分钟的差异):

SELECT 
    (datediff(second, '2017-07-16 16:01:00.0000000', '2017-10-10 00:00:00.0000000')) / 
    (24.0 * 60 * 60)
--or
SELECT 
    (datediff(minute, '2017-07-16 16:01:00.0000000', '2017-10-10 00:00:00.0000000')) / 
    (24.0 * 60)

结果:

85.3326388888
85.3326388

推荐阅读