我有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