通过2个不同的int列创建Date列

时间:2018-10-19 12:02:14

标签: sql sql-server tsql date time

我一直在忙于完成一项看起来相当简单但无法正确完成的任务。

我有2个int列:

  • date就像yyyymmdd
  • time代表自00:00以来的秒数

我想在临时表yyyy/mm/dd hh:mm:ss中创建一个新日期列。

我正在用TIMEFROMPARTS计算时间。有什么可行的方法吗?不胜感激。

例如,如果我有

date_int = 20180901
time_int = 32411

我想要一个新列作为日期

2018/09/01 09:00:11

谢谢

1 个答案:

答案 0 :(得分:4)

您可以将日期转换为datetime,然后添加秒数:

select dateadd(second, time_int, cast(cast(date_int as varchar(8)) as datetime))
from (values (20180901, 32411)) v(date_int, time_int);

严格来说,不必显式转换为datetime,所以这也可以:

select dateadd(second, time_int, cast(date_int as varchar(8)))
from (values (20180901, 32411)) v(date_int, time_int);