Sri*_*Rao 2 sql t-sql sql-server
我有一个表,其中一个列是DOB当前的Type Numeric(7,0).该列的样本值如下
DOB
0
1050418
1050412
1060303
Run Code Online (Sandbox Code Playgroud)
我在SQL中转换列如下
SELECT Convert(Date,Convert(varchar,19000000+DOB),101) as DOB_Date From Test where DOB<>0
Run Code Online (Sandbox Code Playgroud)
我的目标是将此列转换为日期日期类型.
执行SQL时
ALTER TABLE TEST ALTER COLUMN DOB DATE NULL;
Run Code Online (Sandbox Code Playgroud)
给出错误
操作数类型冲突:数字与日期不兼容.
两种选择,整体差别不大.
1)将列数据类型更改为文本形式(例如varchar(10)).然后将文本值就地转换为可以明确转换为日期的表单(例如YYYYMMDD,不使用分隔符),然后执行第二次数据类型转换.
2)创建一个新的日期类型列.使用现有表达式执行更新以设置新值.删除旧列并(如有必要)重命名新列以匹配旧列名.