Ошибка SQL: ошибка преобразования при преобразовании значения varchar ‘2020-11-26’ в бит типа данных

#sql #database #triggers #getdate

#sql #База данных #срабатывает #getdate

Вопрос:

У меня есть этот триггер — можете ли вы исправить ошибку, пожалуйста, в этом коде?

 INSERT INTO trSMSPoolHeader (SMSGatewayServiceCode, IsSent, SendDate, CreatedDate,
                             LastUpdatedDate, CompanyCode, StoreTypeCode, MessageResponseID,
                             IsCommonMessageText, IsBusy, MessageReasonCode, SMSForCustomerRelationshipID, IsMail, MessageSubject)
    SELECT
        , IsSent = 0                     
        , SendDate = GETDATE()
        , CompanyCode = 1           
        , StoreTypeCode = 5         
        , MessageResponseID = N''                                                       
        , IsCommonMessageText = 0                     
        , IsBusy = 0                                    
        , MessageReasonCode = 4 
        , SMSForCustomerRelationshipID = N''
        , SMSGatewayServiceCode = N'AjansIletisim'
        , CreatedDate = GETDATE()
        , LastUpdatedDate = GETDATE()
        , IsMail = 0                               
        , MessageSubject = N'Kampanya' 
    FROM 
        #SendSms
    WHERE 
        PhoneNumberForSMS <> ''  
        AND DiscountOfferCode = N'Taahhüt-01'
 

Ошибка SQL:

Ошибка преобразования при преобразовании значения varchar ‘2020-11-26’ в бит типа данных

Комментарии:

1. Чтобы ответить на ваш вопрос, вы должны добавить структуры таблиц с типами данных и добавить свой тег СУБД, несмотря на то, что об этом можно догадаться.

Ответ №1:

  1. порядок столбцов в вашем операторе insert должен совпадать с порядком столбцов в вашем операторе select
  2. либо вы используете значения из таблицы #SendSms в trSMSPoolHeader, либо жестко закодированные значения. прямо сейчас вы выбираете из временной таблицы, но вставляете жестко закодированные значения, конечно, это работает, но это неправильный способ сделать это.

Ответ №2:

Этот триггер пытается вставить значения типа datetime в поля с типом bit . Скорее всего, это эти поля, судя по их именам: ,CreatedDate=GETDATE() ,LastUpdatedDate=GETDATE()

Поля в таблице: MessageReasonCode, SMSForCustomerRelationshipID