【问题标题】:Is it possible to convert integer to days and hours in SQL?是否可以在 SQL 中将整数转换为天数和小时数?
【发布时间】:2017-08-16 12:07:26
【问题描述】:

我使用的是 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 中?

谢谢!随意告诉我,以前有人问过这个问题(我看了,但找不到像这个一样独特的东西,或者我看起来不够努力)或者这不能完成。

【问题讨论】:

  • 你用的是什么数据库引擎?
  • @Lamak SQL Server。抱歉,我将编辑我的帖子并添加。

标签: sql sql-server date datetime time


【解决方案1】:

您可以简单地使用DATEADD,无需先将小时转换为天:

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

【讨论】:

  • 哦,哇,我刚刚做到了,它有效。非常感谢!没想到这么简单。
【解决方案2】:

你可以试试这个:

  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多