我有varchar'2016-07-2914:50:13.75300
'并且想将它转换为datetime
数据类型。Cast'2016-07-2914:50:13.75300'varchar to datetime T-SQL
我试着用select cast('2016-07-2914:50:13.75300' as datetime)
但我正在逐渐从字符串转换日期和/或时间时
转换失败。
我有varchar'2016-07-2914:50:13.75300
'并且想将它转换为datetime
数据类型。Cast'2016-07-2914:50:13.75300'varchar to datetime T-SQL
我试着用select cast('2016-07-2914:50:13.75300' as datetime)
但我正在逐渐从字符串转换日期和/或时间时
转换失败。
插入DDHH之间的空间,并失去了最后两个数字MS:
select cast(left(stuff('2016-07-2914:50:13.75300', 11, 0, ' '), 23) as datetime)
或切换到'datetime2(5)'并保持毫秒;但这并不是OP说他们想要的东西。 – SqlZim
你为什么不干脆用 select stuff('2016-07-2914:50:13.75300', 11, 0, ' ')
?
超过3位数的毫秒级精度不会被解析 –
不同的方法使用SUBSTRING,当然是绊脚石是要走的路。
DECLARE @TIME VARCHAR(50) = '2016-07-2914:50:13.75300'
SELECT CAST(SUBSTRING(@TIME, 1, 10) AS DATETIME) +
CAST(SUBSTRING(@TIME, 11, LEN(@TIME) - 10) AS TIME)
结果:
2016-07-29 14:50:13.753
操作字符串到29'和'14'之间'添加一个空格。 –
并取下尾部'00' – BJones