【问题标题】:Error 242 when trying to insert a date with SQL [closed]尝试使用 SQL 插入日期时出现错误 242 [关闭]
【发布时间】:2015-10-05 13:01:06
【问题描述】:

为什么当我尝试将此字符串插入 SQL Server 数据库表的“日期时间”列时,会出现代码为 242 的错误消息:

'2012-11-16 00:00:00.000'

报错信息如下:

Server: Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data
type resulted in an out-of-range datetime value.

如果我尝试插入此值,则不会出现此错误:

'2012-11-16 15:00:00.000'

【问题讨论】:

  • CONVERT(DATETIME, '2012-11-16 00:00:00.000') 不起作用!
  • 插入表值 ('CONVERT(DATETIME, '2012-11-16 00:00:00.000') 不起作用...
  • 你怎么能这样插入改变数​​据类型或声明表变量中的语句插入
  • insert into Table values ('2012-11-15 20:51:59.998') 也不起作用,但是为什么。

标签: sql sql-server datetime


【解决方案1】:

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

如果您不需要时间,请将其插入

'20121116'

这些分别是日期时间/日期的 ISO 格式。
与所有其他格式一样,您会遇到问题,具体取决于运行 SQL 语句的用户的语言。

您也可能会在几个月/几天内遇到类似的问题,而且并不总是很明显。

例如如果您解析像'01/01/2015' 这样的字符串,它将始终有效。 但是当你到达'01/13/2015'时,你会遇到问题,因为英语使用month/day/year,而例如德语使用day/month/year,并且13不是有效月份......

在你的情况下,它以某种方式误解了时间,这可能导致各种奇怪的错误。

【讨论】:

  • 非常感谢,这是真正的解决方案
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
相关资源
最近更新 更多