如何在DateTime的DATEADD函数中添加浮点(十进制)小时?

use*_*567 2 sql sql-server-2008

我试图使用DATEADD函数在SQL SERVER中添加一些小时.但是当我尝试这个时,

SELECT DATEADD(Hour, 0.5, GETDATE()) 
Run Code Online (Sandbox Code Playgroud)

它不是加0.5小时.怎么解决这个?

Mar*_*zek 9

你不能.它在文档上有很好的描述:DATEADD(Transact-SQL)

是一个可以解析为添加到date日期部分的int的表达式.用户定义的变量有效.

如果指定带小数部分的值,则会截断分数而不是舍入.

UPDATE

你可以尝试:

SELECT DATEADD(Second, 0.5 * 60 * 60, GETDATE()) 
Run Code Online (Sandbox Code Playgroud)

当然 - 您可以更改DATEPART和倍增以获得所需的精度.