猿问

在插入日期时间时从字符串转换日期和/或时间时,转换失败

在插入日期时间时从字符串转换日期和/或时间时,转换失败

我试着创建一个表,如下所示,

create table table1(date1 datetime,date2 datetime);

首先,我尝试如下所示插入值,

insert into table1 values('21-02-2012 6:10:00 PM','01-01-2001 12:00:00 AM');

它错误地说,

无法将varchar转换为日期时间

然后,我尝试了下面的格式,作为我们的堆栈溢出建议的帖子之一,

insert into table1 values(convert(datetime,'21-02-2012 6:10:00 PM',5)
                          ,convert(datetime,'01-01-2001 12:00:00 AM',5));

但还是有错误的说法,

从字符串转换日期和/或时间时,转换失败

有什么建议吗?


梵蒂冈之花
浏览 9589回答 3
3回答

沧海一幻觉

SQL Server中的转换有时失败,不是因为所使用的日期或时间格式,而是因为您试图存储系统无法接受的错误数据。例子:Create Table MyTable (MyDate);Insert Into MyTable(MyDate) Values ('2015-02-29');SQL服务器将引发以下错误:Conversion failed when converting date and/or time from character string.造成这一错误的原因很简单,就是在2015年没有这样的日期(2月29日)。
随时随地看视频慕课网APP
我要回答