ALTER TABLE table_name
ALTER COLUMN columnWithDate datetime;
Run Code Online (Sandbox Code Playgroud)
columnWithDate是nvarchar(255)的一种,数据采用2018.06.19.形式。我检查了所有不同的值,并且columnWithDate中有一行具有NULL值。
我在alter命令中遇到以下错误runninf:
The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value.
Run Code Online (Sandbox Code Playgroud)
我在这里想念什么?
您需要首先将值更改为明确的格式,然后更改数据类型。对于您拥有的值,只需删除.,即可产生ISO格式yyyyMMdd:
UPDATE YourTable
SET YourDateColumn = REPLACE(YourDateColumn,'.','');
ALTER TABLE YourTable ALTER COLUMN YourDateColumn datetime; --Should this not be a date?
Run Code Online (Sandbox Code Playgroud)
正如我所评论的那样,date这里可能是一个更好的选择,因为您的价值没有时间部分。