SQL:将日期和时间列合并为1个日期时间列

SQL:将日期和时间列合并为1个日期时间列,sql,sql-server,Sql,Sql Server,我的数据导入有点混乱,最后出现了以下列: Date (Type = INT) (DataFormat = 20131231) Time (Type = datetime) (DataFormat = 1899-12-30 13:30:00.000) 最后,我想将Date/Time的1列作为datetime类型,保留现有的日期和时间,是否有方法转换现有列?这里有一种方法: declare @Date int = 20131231 declare @DateTime datetime = '189

我的数据导入有点混乱,最后出现了以下列:

Date (Type = INT) (DataFormat = 20131231)
Time (Type = datetime) (DataFormat = 1899-12-30 13:30:00.000)
最后,我想将Date/Time的1列作为datetime类型,保留现有的日期和时间,是否有方法转换现有列?

这里有一种方法:

declare @Date int = 20131231
declare @DateTime datetime = '1899-12-30 13:30:00.000'

select dateadd(ms, 
               datediff(ms, cast(@DateTime as date), @DateTime),
               cast(cast(@Date as varchar(8)) as datetime)
              )
这里有一种方法:

declare @Date int = 20131231
declare @DateTime datetime = '1899-12-30 13:30:00.000'

select dateadd(ms, 
               datediff(ms, cast(@DateTime as date), @DateTime),
               cast(cast(@Date as varchar(8)) as datetime)
              )