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

时间:2013-04-07 11:01:36

标签: sql sql-server-2008

我正在尝试使用DATEADD函数在SQL SERVER中添加几个小时。但是当我尝试这个时,

SELECT DATEADD(Hour, 0.5, GETDATE()) 

不加0.5小时。怎么解决这个问题?

3 个答案:

答案 0 :(得分:9)

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

  

     

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

     

如果指定带小数部分的值,则会截断分数   没有四舍五入。

更新

你可以尝试:

SELECT DATEADD(Second, 0.5 * 60 * 60, GETDATE()) 

当然 - 您可以更改DATEPART和乘数以获得所需的精度。

答案 1 :(得分:4)

您无法添加部分小时数,只需几小时。使用minute半小时

SELECT DATEADD(minute, 30, GETDATE()) 

答案 2 :(得分:0)

我发现了另一种方法,在日期中添加一个数字而不是使用该函数可用于分数。例如:

GETDATE() + n

其中 n是天数。在1个半小时内,您可以使用:

GETDATE() + 0.5/24