2013-01-07 53 views
1

我试图在明天的10:00:00插入到SQL Server 2005/2008中。在特定时间插入明日期

我现在有

DATEADD(dd, 1, GETDATE()) 

这给了我明天的日期正常,但是我已经尝试了多种方法也CONCAT /时间设置为10:00:00

例子:

Current Time: 2013-01-07 15:37:05 
Required Insert Date: 2013-01-08 10:00:00 

回答

3

您可以使用DATEADDDATEDIFF的组合。

SELECT DATEADD(hh,10, DATEDIFF(dd,0, DATEADD(dd, 1, GetDate()))) 

DATEDIFF(dd,0...)截断的日期的时间部分,因此“轮”到午夜和DATEADD(hh,10...)增加10小时。

DEMO

+0

谢谢!你也可以使用GetDate()+ 1而不是DATEADD(dd,1,GetDate())将其缩短一点 – mdegges

1

尝试了这一点:

DATEADD(hh,34,DATEDIFF(dd,0,GETDATE()))

1

比其他答案少了一个DATEADD

SELECT DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-02T10:00:00') 

这增加了天(积分)数量自2001年1月1日上午10点上在1月2日2001年

+0

@TimSchmelter - 是的,在我的编辑中更正,因为我添加了解释:-) –

0

这将在Oracle工作 - 第二天上午10点返回:

Select to_char((trunc(Sysdate)+1)+10/24, 'yyyy-mm-dd hh24:ss:mi') insert_date 
From dual 
/

SQL> 2013-01-08 10:00:00