我一直在忙于完成一项看起来相当简单但无法正确完成的任务。
我有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
谢谢
答案 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);