在特定时间插入明天日期

时间:2013-01-07 15:37:17

标签: sql sql-server-2008 sql-server-2005

我试图将明天的日期在10:00:00插入SQL Server 2005/2008。

我目前有

DATEADD(dd, 1, GETDATE()) 

这给了我明天的日期,但是我尝试了很多方法来将时间连接/设置为10:00:00

示例:

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

4 个答案:

答案 0 :(得分:3)

您可以使用DATEADDDATEDIFF的组合。

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

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

DEMO

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

比其他答案少DATEADD

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

这增加了自2001年1月1日至2001年1月2日上午10点的(整数)天数。

答案 3 :(得分: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