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

cod*_*ter 51 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!)
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*son 69

@Date + cast(@Time as datetime)
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2012中,我假设SQL Server 2014需要将日期和时间变量强制转换为datetime.

cast(@Date as datetime) + cast(@Time as datetime)
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法让它与“datetime2”或其他日期时间类型一起工作? (2认同)

jda*_*ies 10

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

SELECT CAST(@Date AS DATETIME) + CAST(@Time AS DATETIME)
Run Code Online (Sandbox Code Playgroud)


Aru*_*run 5

这应该有效:

select @Date, @Time, CAST(@Date AS datetime) + CAST(@Time AS datetime)
Run Code Online (Sandbox Code Playgroud)