【发布时间】:2016-09-15 06:02:38
【问题描述】:
您好,我创建了一个表,其中一列是date 类型,也可用作PK。我尝试将值 2009-01-07 插入此列并出现此错误。 Date默认格式不是yyyy-mm-dd吗?我不明白这个。
Msg 241, Level 16, State 1, Line 3
Conversion failed when converting date and/or time from character string.
这是我的查询:
INSERT INTO Table_Name
Values ('2009-01-07', other column values)
【问题讨论】:
-
其他事情正在发生,因为
'2009-01-07'可以作为日期插入。尝试创建一个全新的(表格和/或)列作为日期,看看是否可以插入该列。在我看来,好像您可能有一个触发器或检查约束调用一个函数或某些语言设置 - 或类似的东西 - 在无法处理该值的表上。或者它是当然失败的other column values之一。 -
你能写另一个 INSERT 查询显式调用列的名称吗?例如:
INSERT INTO Table_Name (Date_PK, ...) VALUES ('2009-01-07', ...)。只是想确定哪一列引发了异常。2009-01-07应该没问题。 -
执行选择GETDATE(),参考它的输出并相应地改变你的日期格式
-
确保列出目标列names:
insert into table_name (col1, col2, ...) values (...)- 可能表中的列与它们在values列表中出现的顺序不同
标签: sql sql-server type-conversion