在sqlserver表

时间:2016-05-10 07:03:30

标签: sql-server datetime

在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类型?

谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您使用的是SQL Server 2012

试试这个

SELECT TRY_CONVERT(DATETIME, dateCreation, 120) AS dateCreation
FROM atPropostes

注意:请确保以varchar类型存储的日期具有一致的日期格式。它应该像yyyy-mm-dd或mm-dd-yyyy或......