我運行SQL Server標準2008 R2的Windows Server 2008 R2標準(SP1)部分,並轉換成datetime在T-SQL
的64位版本,我已經導入一個日誌文件作爲平面文件源。名爲big
的表中名爲col2
的導入列之一包含這樣的值:16/Mar/2007:11:30:17
爲varchar(50)
。
我想將該列(col2
)轉換爲datetime
數據類型。
我正在嘗試的一種方法是提取日期字符串的每個部分,然後重新組合並轉換它們。
我遇到的問題是,每列都有不同的寬度,因爲日誌文件不能整齊地分隔,使得使用類似CHARINDEX
的東西返回一個數字或有時爲NULL。
我一直在試圖設置使用正則表達式使用CLR集成,但無法讓它工作(我不能在Visual Studio中創建一個C#項目,沒有選項),Master Data Services贏得了'因爲SQL Server 2008 R2 Standard不支持它。
什麼是我最好的方法來做到這一點?使用CASE
,SUBSTRING
和CHARINDEX
?
嗯,我想這一個,剪裁它爲:'選擇轉換:從big'(日期時間,STUFF(COL2,CHARINDEX( '',COL2),1,」「),101) ,和得到:「msg 241,級別16,狀態1,行1 轉換日期和/或時間從字符串轉換失敗。」 –