我有一個varchar中的日期列。我需要將其轉換爲日期時間格式。將varchar轉換爲datetime(包括小時分秒)
My data looks like this in varchar:29-JUL-11 02.44.29.984664000 PM
I want this to be in datetime format like this: 29-JUL-11 02.44.29.984664000 PM
我使用下面的查詢:
select convert (datetime, (convert (float, [KYC_STATUS_CHANGED_DATE])),120) from [dbo].[KYC_Data_31122012]
但它給以下錯誤:
Error converting data type varchar to float
我在做什麼錯?
爲什麼一個日期列的varchar? –
爲什麼兩個'CONVERT's?你說你有數據保存爲'VARCHAR',並希望它是'DATETIME',但你首先將VARCHAR轉換爲FLOAT,然後將其轉換爲DATETIME,看起來像內部的CONVERT可能太多?此外,您提到的格式只與顯示有關,「DATETIME」是一個保存的時間點,不包含任何格式,只有當您想再次顯示時纔會變得相關。 – DrCopyPaste
'DateTime'甚至精確嗎?從MSDN:'日期時間值四捨五入到.000,.003或.007秒的增量。除非剝離某些亞秒級精度,否則不能解析該字符串。 SQL僅在秒後識別3位數字 – Charleh