我有我得到一个错误,当我尝试改变日期栏:演员阵容或转换?
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