SQL全天差
有人知道如何在两天之间的全天内获取datdiff吗 我现在正在使用SQL全天差,sql,Sql,有人知道如何在两天之间的全天内获取datdiff吗 我现在正在使用 datediff(day,createddate,dateserved) 但需要返回多少个完整的天数 i、 e 目前datediff将显示1天,但我需要它显示0,直到dateserved超过2100 有什么想法吗 Sp您可以使用: DATEDIFF(dy, created_date, date_served) - CASE WHEN CAST(created_date AS TIME) > CAST(date_
datediff(day,createddate,dateserved)
但需要返回多少个完整的天数
i、 e
目前datediff将显示1天,但我需要它显示0,直到dateserved超过2100
有什么想法吗
Sp您可以使用:
DATEDIFF(dy, created_date, date_served) -
CASE
WHEN CAST(created_date AS TIME) > CAST(date_served AS TIME) THEN 1
ELSE 0
END
我最初建议尝试使用除法,但当你达到毫秒时,你可以很快找到算术溢出。你可以使用:
DATEDIFF(dy, created_date, date_served) -
CASE
WHEN CAST(created_date AS TIME) > CAST(date_served AS TIME) THEN 1
ELSE 0
END
我最初建议尝试使用除法,但当你降到毫秒时,你会很快遇到算术溢出。你能做的是在
DATEDIFF()
函数中使用尽可能小的分辨率,你可以轻松地避开(分、秒,等等)。然后是数学,将其转换为一天的表示形式
我的基本建议是:
Floor(DATEDIFF(mi, createddate, dateserved)/60/24);
您所能做的就是在
DATEDIFF()
函数中使用尽可能最小的分辨率,您可以轻松地使用它(分钟、秒等)。然后是数学,将其转换为一天的表示形式
我的基本建议是:
Floor(DATEDIFF(mi, createddate, dateserved)/60/24);
此外,以下内容似乎有效且更加简洁,但可能需要一些测试
SELECT FLOOR(CAST(dateserved-createddate AS FLOAT))
此外,以下内容似乎有效且更加简洁,但可能需要一些测试
SELECT FLOOR(CAST(dateserved-createddate AS FLOAT))
@伊恩·雅各布斯(Ian Jacobs)首先得到了它,但下面是我在T-SQL中的实现方式。假设你只关心时间:
DECLARE
@From datetime
,@Thru datetime
SET @From = 'Jan 1, 2010 21:00'
SET @Thru = 'Jan 3, 2010 20:00' -- 2/7/2010 2000
print datediff(dd, @From, @Thru)
print datediff(hh, @From, @Thru)
PRINT datediff(hh, @From, @Thru) / 24
…也就是说,计算日期时间之间的小时差,除以24,然后截断十进制值。SQL看起来是截断的,但如果你是偏执狂,请使用
print datediff(hh, @From, @Thru) / 24.0
PRINT floor(datediff(hh, @From, @Thru) / 24.0)
以确保正确截断。如果需要精确到分、秒或毫秒,请添加更多的算术运算。@Ian Jacobs首先得到了它,但下面是我在T-SQL中的实现方法。假设你只关心时间:
DECLARE
@From datetime
,@Thru datetime
SET @From = 'Jan 1, 2010 21:00'
SET @Thru = 'Jan 3, 2010 20:00' -- 2/7/2010 2000
print datediff(dd, @From, @Thru)
print datediff(hh, @From, @Thru)
PRINT datediff(hh, @From, @Thru) / 24
…也就是说,计算日期时间之间的小时差,除以24,然后截断十进制值。SQL看起来是截断的,但如果你是偏执狂,请使用
print datediff(hh, @From, @Thru) / 24.0
PRINT floor(datediff(hh, @From, @Thru) / 24.0)
以确保正确截断。如果您需要精确到分钟、秒或毫秒,请添加多一点算术