结合两个日期时间的日期时间 - SQL Server 2012

时间:2016-12-07 16:00:35

标签: sql-server tsql datetime sql-server-2012

如何组合两个日期时间的日期时间值。 第一个值包含适当的日期,第二个值包含适当的时间(但也有一个我想跳过的日期)。

DECLARE @date DATETIME = '2016-12-08 00:00:00.000'
DECLARE @time DATETIME = '2016-12-07 12:15:00.000'

SELECT @date + @time返回:2133-11-14 12:15:00.000 但我想:2016-12-08 12:15:00.000

1 个答案:

答案 0 :(得分:1)

Convert函数中使用 style 部分来提取date中的timevarchar(避免显式转换为varchar )键入并连接结果以获得结果日期

  • 112提取日期
  • 114提取时间

试试这个

DECLARE @date DATETIME = '2016-12-08 00:00:00.000'
DECLARE @time DATETIME = '2016-12-07 12:15:00.000'

SELECT CONVERT(DATETIME, CONVERT(VARCHAR(50), @date, 112) + ' '
                         + CONVERT(VARCHAR(50), @time, 114)) 

结果: 2016-12-08 12:15:00.000