为简单起见,我在表格中有两列
DATE = DateTime2(7) 2016-06-16 00:00:00.000000
TIME = Varchar(5) 09:00
我已经尝试了几个强制转换和转换,如下面的示例所示,尝试将它们组合成一个新列,作为Dateocity的 2016-06-16 09:00:00.000000 格式:
convert(datetime,
convert(varchar(10),DATE, 121) + ' ' + convert(varchar(8),TIME, 108))
as 'DateTime'
但我一直收到这个错误:
从字符串转换日期和/或时间时转换失败。
感谢任何帮助。
答案 0 :(得分:1)
您的time
已经是一个字符串。所以你应该这样做:
convert(varchar(10), [DATE], 121) + ' ' + [TIME]
如果您只想要HH:MM:SS格式,请使用LEFT()
:
convert(varchar(10), [DATE], 121) + ' ' + LEFT([TIME], 8)
返回一个字符串。
请注意,您只需添加datetime
值,这样您就可以执行以下操作:
select [DATE] + CAST([TIME} as DATETIME)
答案 1 :(得分:0)
order_by
结果:
DECLARE @DATE DateTime2(7) = '2016-06-16 00:00:00.000000'
DECLARE @TIME Varchar(15) = '09:00:00.000000'
SELECT CAST(
CAST(@DATE as date)
as datetime) +
CAST(
CAST(@TIME as time)
as datetime) As DateTimeValue