我试图在明天的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
我试图在明天的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
您可以使用DATEADD
和DATEDIFF
的组合。
SELECT DATEADD(hh,10, DATEDIFF(dd,0, DATEADD(dd, 1, GetDate())))
DATEDIFF(dd,0...)
截断的日期的时间部分,因此“轮”到午夜和DATEADD(hh,10...)
增加10小时。
尝试了这一点:
DATEADD(hh,34,DATEDIFF(dd,0,GETDATE()))
比其他答案少了一个DATEADD
:
SELECT DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-02T10:00:00')
这增加了天(积分)数量自2001年1月1日上午10点上在1月2日2001年
@TimSchmelter - 是的,在我的编辑中更正,因为我添加了解释:-) –
这将在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
谢谢!你也可以使用GetDate()+ 1而不是DATEADD(dd,1,GetDate())将其缩短一点 – mdegges