Sql-Server
將 varchar 列轉換為日期時間
在 SQL Server 中,我有一個 varchar 列,其值如下:
07/May/2012:00:06:22 07/May/2012:00:06:22 07/May/2012:00:06:22 07/May/2012:00:06:22 07/May/2012:00:06:22
- 如何將此列轉換為具有實際日期時間的日期時間列?
- 如果這是不可能的,我該如何創建一個新列並將這些值複製到其中但作為日期時間值?
假設其他月份的日期被截斷為 3 個字元的月份:
ALTER TABLE dbo.tablename ADD newcol DATETIME; UPDATE dbo.tablename SET newcol = CONVERT(DATETIME, REPLACE(LEFT(varchar_col, 11), '/', ' ') + ' ' + RIGHT(varchar_col, 8), 113);
驗證後,您可以刪除 varchar_col,重命名 newcol,然後重新添加任何受影響的索引。
您可能有一些數據不適合文件中某處的日期時間列。將列插入到帶有 varchar 或 navachar 欄位的臨時表中並查看數據。在載入到真實表之前,您可能需要調整其中的一些(或清除不良記錄)。