2012-04-10 65 views
2

我有一个出生日期字段,导入了一些错误,我试图纠正它们。我使用的查询基于ID更新DATE数据类型#

UPDATE myTable 
SET DOB=2012-04-10 
WHERE id=123456 

而且我得到的错误

Msg 206, Level 16, Line 1 
Operand type clash: int is incompatible with date 

这似乎是合乎逻辑足够给我,但不是到SQL Server,就如何解决这一问题的任何想法?

回答

2

你需要把一个单引号周围的日期:

UPDATE myTable 
SET DOB='2012-04-10' 
WHERE id=123456 
+0

我试过这个,当我得到这个错误读取: – wootscootinboogie 2012-04-10 13:52:06

+0

你得到什么错误? – Taryn 2012-04-10 13:52:29

+0

从字符串中转换日期和/或时间时转换失败。然而,DOB绝对是'日期'数据类型。 – wootscootinboogie 2012-04-10 13:52:54

1

试着把你的日期放在单引号中。 SQL需要引号划定值开始的地方结束

UPDATE myTable 
SET DOB='2012-04-10' 
WHERE id=123456 
2

也许是这样的:

UPDATE myTable 
SET DOB='2012-04-10' 
WHERE id=123456 
2

我想这是一个语法错误。试试这个

UPDATE myTable 
SET DOB='2012-04-10' 
WHERE id=123456 
+0

我试过了,但它给了我转换数据和/或时间从字符串时的错误转换失败。但是,在设计视图中打开表并检查显示DOB是日期数据类型。 – wootscootinboogie 2012-04-10 13:55:16

1

什么样的数据类型是DOB列?

尝试

SET DOB = '2012/04/10' 

而且最好的时候,您的更新只是柜面它粘在一个事务中。 Rollback拯救了我的屁股很多次。