【问题标题】:Combine datetime from two datetimes - SQL Server 2012结合两个日期时间的日期时间 - SQL Server 2012
【发布时间】:2017-04-22 15:53:49
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

使用Convert函数中的style部分来提取varchar中的datetime(避免一些显式转换为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

【讨论】:

  • 效果很好,谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-09-19
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2016-03-15
  • 2017-01-05
相关资源
最近更新 更多