2015-10-05 156 views
0

为什么当我尝试在“datetime”值中插入此日期时,消息242会进行比较?SQL Server Management Studio Express中的错误242

2012-11-16 00:00:00.000 

这个错误没有,例如如果我尝试插入:

2012-11-16 15:00:00.000 
+0

http://stackoverflow.com/questions/10398921/how-does-sql-server-decide-format-for-implicit-datetime-conversion – mohan111

+0

CONVERT(DATETIME,'2012-11-16 00:00:00.000 ')不起作用! –

+0

insert into Table values('CONVERT(DATETIME,'2012-11-16 00:00:00.000')does not work ... –

回答

1

将它插入'2012-11-16T00:00:00.000'

如果你不需要的时候,将它插入

'20121116' 

这些是日期时间/日期的ISO格式。
与其他所有格式一样,根据SQL语句运行的用户的语言,您会遇到问题。

你也可以得到像月/日这样的问题,但并不总是显而易见的。

例如如果你解析一个像'01/01/2015'这样的字符串,它将一直工作。 但是当你到'01/13/2015',你遇到问题,因为英语使用month/day/year,而例如德国用途day/month/year,13是不是有效的一个月...

在你的情况下,以某种方式曲解时间,而会导致各种奇怪的错误。

+0

非常感谢您,这是真正的解决方案 –

相关问题