在SQL Server中,我有一个名为“dateCreation”的列定义为varchar(50),我想将其转换为datetime类型。如果我使用MS SQL Server Management Studio将列的类型更改为datetime,则会收到以下警告:
'atPropostes' table
- Warning: Data might be lost converting column 'dateCreation' from 'varchar(50)'.
然后如果我执行此操作:
SELECT CONVERT(Datetime, dateCreation, 120) as dateCreation from atPropostes -- to convert it to Datetime
我收到以下错误:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
什么是最好的方式 (1)将列类型更改为datetime和 (2)将所有寄存器从varchar(50)转换为Datetime类型?
谢谢!
答案 0 :(得分:0)
我假设您使用的是SQL Server 2012
试试这个
SELECT TRY_CONVERT(DATETIME, dateCreation, 120) AS dateCreation
FROM atPropostes
注意:请确保以varchar类型存储的日期具有一致的日期格式。它应该像yyyy-mm-dd或mm-dd-yyyy或......