Sql server 转换日期时发生SQL Server错误

Sql server 转换日期时发生SQL Server错误,sql-server,Sql Server,我在SQLServer中有一个查询,检查数据是否已经在数据库中,如果没有,它将把数据插入数据库 以下是我的疑问: IF EXISTS (SELECT DocumentNo, DocumentDate, CustomerAccountName, PostalName, RequestedDeliveryDate, SupplierDocumentNo, SupplierAccountName, DispatchName FROM

我在SQLServer中有一个查询,检查数据是否已经在数据库中,如果没有,它将把数据插入数据库

以下是我的疑问:

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”哇,我真不敢相信我错过了这个:/我已经为此挠头好几个小时了