是否可以在SQL中将整数转换为天数和小时数?

时间:2017-03-23 18:44:30

标签: sql sql-server date datetime time

我正在使用SQL Server 2014。

我尝试做的是为旧的日期时间添加新的时间。

我甚至不确定它是否可行,但我想我会问专家。

所以这些是我的专栏:

CurrentDate         | Hours | NewDate
2017-03-10 08:00:00 | 25    | ??
2017-01-01 10:00:00 | 27    | ??

我想要的是将小时数转换为天数和小时数,以便将其添加到CurrentDate以创建NewDate。

所以NewDate将是:2017-03-11 09:00:00因为25小时相当于1天1小时。第二个NewDate将是:2017-01-02 01:00:00因为27相当于1天3小时。

我实际上并不认为这是可能的,而且我可能不得不将已经转换的时间分为几天和几天,但如果是这样的话,我怎么写25小时?它会是00-00-01 01:00:00吗?并且27小时是00-00-01 03:00:00然后只是将这些值添加到CurrentDate?

谢谢!随意告诉我之前已经问过这个问题(我看过,但是找不到任何与此类似的独特之处,或者我看起来不够努力)或者是否可以做到这一点。< / p>

2 个答案:

答案 0 :(得分:2)

您只需使用DATEADD,无需先将小时数转换为天数:

SELECT CurrentDate, 
       Hours,
       DATEADD(HOUR,Hours,CurrentDate) NewDate
FROM dbo.YourTable;

答案 1 :(得分:0)

你可以试试这个:

  select DATEADD(HOUR,25,'2017-03-10 08:00:00') -- 2017-03-11 09:00:00.000
  select DATEADD(HOUR,27,'2017-01-01 10:00:00') -- 2017-01-02 13:00:00.000