Sql server 转换日期时发生SQL Server错误
我在SQLServer中有一个查询,检查数据是否已经在数据库中,如果没有,它将把数据插入数据库 以下是我的疑问:Sql server 转换日期时发生SQL Server错误,sql-server,Sql Server,我在SQLServer中有一个查询,检查数据是否已经在数据库中,如果没有,它将把数据插入数据库 以下是我的疑问: IF EXISTS (SELECT DocumentNo, DocumentDate, CustomerAccountName, PostalName, RequestedDeliveryDate, SupplierDocumentNo, SupplierAccountName, DispatchName FROM
IF EXISTS
(SELECT
DocumentNo,
DocumentDate,
CustomerAccountName,
PostalName,
RequestedDeliveryDate,
SupplierDocumentNo,
SupplierAccountName,
DispatchName
FROM
SalesOrders
WHERE
(DocumentNo = '0000233555'))
UPDATE SalesOrders
SET RequestedDeliveryDate ='2015-04-16',
SupplierDocumentNo ='',
SupplierAccountName = '',
DispatchName =''
WHERE
(DocumentDate = '0000233555')
ELSE
INSERT INTO SalesOrders (DocumentNo, DocumentDate,
CustomerAccountName, PostalName,
RequestedDeliveryDate, SupplierDocumentNo,
SupplierAccountName, DispatchName)
VALUES ('0000233555', '2015-03-05',
'Company name', 'Company name',
'2015-04-16', '',
'', '')
但是我得到了这个错误
Msg 241,16级,状态1,第12行
从字符串转换日期和/或时间时,转换失败
这张桌子是如何设计的
column name Data type Allow Null
ID int Unchecked
DocumentNo varchar(50) Checked
DocumentDate date Checked
CustomerAccountName varchar(100) Checked
PostalName varchar(100) Checked
RequestedDeliveryDate date Checked
ShipmentType varchar(50) Checked
Shipped int Checked
Collected int Checked
OrderComplete tinyint Checked
SupplierDocumentNo varchar(100) Checked
SupplierAccountName varchar(100) Checked
DispatchName varchar(100) Checked
HiddenStatus int Checked
我真的不知道为什么会出现这个错误。如果您能提供任何帮助,我们将不胜感激。其中DocumentDate='0000233555'我想DocumentDate='0000233555'应该是DocumentNo='0000233555'。只需在此处键入。从字符串值比较或插入日期/数据时间时,必须将其转换为有效的日期/数据时间格式。 SQL Server不知道以字符串形式提供日期值的格式。 让他知道你应该使用函数 编辑: 而且,如前所述,您的查询可能有输入错误:
(DocumentDate = '0000233555')
应该是
(DocumentNo = '0000233555')
试试“20150305”,例如“YYYYMMdd”哇,我真不敢相信我错过了这个:/我已经为此挠头好几个小时了