我正在尝试将明天 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
我正在尝试将明天 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
您可以使用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 日以来的(整数)天数添加到 2001 年 1 月 2 日上午 10 点。
这将在 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