修复错误 - 在SQL中将nvarchar值转换为日期类型int时转换失败

问题描述 投票:0回答:1

我收到这个错误:

Msg 245,Level 16,State 1,Line 10 将nvarchar值'PLANT001'转换为数据类型int时转换失败

我尝试将转换和转换为int添加到第一行获取错误以及最后一次连接但我仍然得到错误。

SELECT
    hh.PlantID AS 'Plant ID',
    hh.ERP AS 'ERP',
    hh.ShipViaID AS 'Ship Via ID',
    cc.carrier AS 'Carrier',
    cc.service AS 'Service',
    cc.packagetype AS 'Pkg Type',
    hd.HandlingChargeTypeID AS 'Handling Charge ID',
    hd.HandlingCharge 'Handling Charge',
    hr.AdditionalPercentageAdded 'Heading Addl % Added',
    hd.ApplyToEachPackage AS 'Apply to Each Pkg',
    hr.MinimumHandlingCharge AS 'Min Handling Charge',
    hr.MaximumHandlingCharge AS 'Max Handling Charge'
FROM 
    HandlingChargeHeader hh 
JOIN 
    HandlingChargeDetails hd ON hd.HandlingChargeHeaderID = hh.ID
JOIN 
    HandlingChargeRequirements hr ON hh.ID = hr.HandlingChargeHeaderID
LEFT JOIN 
    xcarrier_codes cc ON cc.ID = hh.ShipViaID AND hh.PlantID = cc.plantid

cc.plantid = nvarcharhh.plantid = int

sql-server
1个回答
0
投票

你可以使用try_convert()

select . . . 
from . . . 
     on . .  and
        try_convert(int, cc.plantid) = cc.plantid;

但是,这似乎无法解决您需要在需要的数据时始终进行转换的问题。

建议的解决方案是在可能立即生效的情况下更改数据模型。

© www.soinside.com 2019 - 2024. All rights reserved.