SQL Server错误:将char数据类型转换为smalldatetime数据类型导致超出范围的smalldatetime值

时间:2016-07-05 11:13:43

标签: sql-server

我的声明遇到了这个错误:

insert into messages ([from], [to], [message], Subject, status, senderID, 
                      PassengerID, Taxis, bags, passengers, dest, Comments, [when])
values(2, 81, '2', 'Bid', 1, 2, 
       2, 2, 2, 2, '2', '2', CONVERT(smalldatetime, '25.7.2016 13:01'))

我收到此错误:

  

将char数据类型转换为smalldatetime数据类型会导致超出范围的smalldatetime值。

在控制台上运行相同的语句时,它的工作完全正常!

2 个答案:

答案 0 :(得分:1)

您需要在Convert函数中指定适当的style参数,如下所示 -

Insert into messages ([from],[to],[message],Subject,status,senderID,PassengerID,Taxis,bags,passengers, dest, Comments,[when])
   values(2,81,'2','Bid',1,2,2,2,2,2,'2','2',CONVERT(smalldatetime, '25.7.2016 13:01', 104))

答案 1 :(得分:1)

这与您的服务器设置有关。当您输入欧洲格式(dd mm yyyy)时,似乎您的服务器等待美国日期格式(mm dd yyy)。