将日期和时间字段组合到DateTime,SQL Server 2008

时间:2011-09-02 22:20:06

标签: sql sql-server-2008

好的 - 我问了几个人,必须有一个简单的方法来做到这一点......

declare @Date date
declare @Time time 
declare @datetime datetime

select @Date = convert(Date,GetDate()) 
select @Time = convert(Time,GetDate())

select @Date, @Time, @Date + @Time (+ operator fails!)

我真的必须: 1)转换为字符串,然后转换为datetime字段? 2)使用DateAdd和DatePart添加小时,然后是分钟,然后是秒......

3 个答案:

答案 0 :(得分:65)

@Date + cast(@Time as datetime)

在SQL Server 2012中,我假设SQL Server 2014,您需要将日期和时间变量都转换为日期时间。

cast(@Date as datetime) + cast(@Time as datetime)

答案 1 :(得分:10)

首先尝试将它们都投射到DATETIME:

SELECT CAST(@Date AS DATETIME) + CAST(@Time AS DATETIME)

答案 2 :(得分:3)

这应该有效:

select @Date, @Time, CAST(@Date AS datetime) + CAST(@Time AS datetime)