我有我得到一個錯誤,當我嘗試改變日期欄:演員陣容或轉換?
Arithmetic overflow error for type varchar, value = 20100601.000000.
我想它從浮去的20100601.
由於阿爾特不工作的日期時間格式,如何使用強制轉換或轉換來更改表中每個條目的數據類型?
我有我得到一個錯誤,當我嘗試改變日期欄:演員陣容或轉換?
Arithmetic overflow error for type varchar, value = 20100601.000000.
我想它從浮去的20100601.
由於阿爾特不工作的日期時間格式,如何使用強制轉換或轉換來更改表中每個條目的數據類型?
UPDATE table_name
SET new_date_column=CAST(CAST(CAST(old_date_column AS INT) AS VARCHAR) AS DATETIME)
這將更新新列
「20100601.000000」是指20萬元,10萬,後601天01一月1900
「20100601」作爲一個字符串是2010年01月
我會使用從float轉換爲日期時間時這是100%肯定的轉換
SELECT CAST(CAST(CAST(20100601.000000 AS int) AS char(8)) AS datetime)
我敢肯定,必須有一個更好的辦法的......
ALTER TABLE dbo.YourTable ADD
NewColumn datetime NULL
UPDATE [YourTable]
SET [NewColumn] =
CAST(CAST(CAST(ROUND(YourOriginalColumn,0) as INT) AS char(8)) AS DATETIME)
那麼,如果這個想法是你必須理智後檢查的事情,做了備份等
ALTER TABLE dbo.Cars
DROP COLUMN YourOriginalColumn
EXECUTE sp_rename N'dbo.YourTable.NewColumn', N'YourOriginalColumn', 'COLUMN'
什麼是當前的數據類型,以取代舊列,你想要什麼? – 2010-06-01 19:48:45
現在它是「浮動」,我喜歡它是'20100601'的數據類型。你知道嗎? – Daniel 2010-06-01 19:53:36
2010年6月1日06:00有沒有像20100601.250000這樣的值? – gbn 2010-06-01 20:08:18