Sql 级别16,状态5,第1行将数据类型varchar转换为数字时出错
我在以下简单查询中遇到问题:Sql 级别16,状态5,第1行将数据类型varchar转换为数字时出错,sql,sql-server,Sql,Sql Server,我在以下简单查询中遇到问题: INSERT INTO table ( [Date], [Name], [Weight], [Position], [Effective_Maturity], [Yield_to_Worst], [Modified_Duration], [OAD], [CTD], [OAC], [OAS], [Coupon], [Credit_Rati
INSERT INTO table (
[Date],
[Name],
[Weight],
[Position],
[Effective_Maturity],
[Yield_to_Worst],
[Modified_Duration],
[OAD],
[CTD],
[OAC],
[OAS],
[Coupon],
[Credit_Rating],
[CUSIP],
[Market_Value],
[Principal],
[Yield_to_Maturity])
VALUES
('6/28/2013','ISHARES BARCLAYS TIPS BOND FUND','100','0','8.647','0.0772','0.0772','3.8629','8.204','8.2040','1.112','9.034','1.543','AAA','TIPETF','1796461','178696')
GO
我不确定表中的哪个变量不能转换为数字,而且我对MS SQL中的数据类型缺乏了解。但是,我认为这些输入中的大多数都正确地适合它们各自的数据类型。表数据类型包括:
谢谢 您试图将'TIPETF'字符串放在[Market\u Value]列中,该列是数字。您试图将'TIPETF'字符串放在[Market\u Value]列中,该列是数字。您的字段排列不正确:
'AAA'
看起来像信用评级,而不是CUSIP()
看起来你跳过了一个值,或者在中间添加了一个字段,或者两者都是:
[Date] = '6/28/2013',
[Name] = 'ISHARES BARCLAYS TIPS BOND FUND'
[Weight] = '100',
[Position] = '0',
[Effective_Maturity] = '8.647',
[Yield_to_Worst] = '0.0772',
[Modified_Duration] = '0.0772',
[OAD] = '3.8629',
[CTD] = '8.204',
[OAC] = '8.2040',
[OAS] = '1.112',
[Coupon] = '9.034',
[Credit_Rating] = '1.543',
[CUSIP] = 'AAA', -- <<<=== THIS IS NOT A VALID CUSIP
[Market_Value] = 'TIPETF',
[Principal] = '1796461',
[Yield_to_Maturity] = '178696'
[日期]=“6/28/2013”,
[名称]=“ISHARES巴克莱TIPS债券基金”
[重量]=“100”,
[位置]=“0”,
[有效到期日]=“8.647”,
[最差收益率]=“0.0772”,
[Modified_Duration]=“0.0772”,
[OAD]=“3.8629”,
[CTD]=“8.204”,
[OAC]=“8.2040”,
[OAS]=“1.112”,
[息票]=“9.034”,
[信用评级]=“1.543”,
[CUSIP]=“AAA”,您的字段排列不正确:“AAA”
看起来像信用评级,而不是CUSIP()
看起来你跳过了一个值,或者在中间添加了一个字段,或者两者都是:
[Date] = '6/28/2013',
[Name] = 'ISHARES BARCLAYS TIPS BOND FUND'
[Weight] = '100',
[Position] = '0',
[Effective_Maturity] = '8.647',
[Yield_to_Worst] = '0.0772',
[Modified_Duration] = '0.0772',
[OAD] = '3.8629',
[CTD] = '8.204',
[OAC] = '8.2040',
[OAS] = '1.112',
[Coupon] = '9.034',
[Credit_Rating] = '1.543',
[CUSIP] = 'AAA', -- <<<=== THIS IS NOT A VALID CUSIP
[Market_Value] = 'TIPETF',
[Principal] = '1796461',
[Yield_to_Maturity] = '178696'
[日期]=“6/28/2013”,
[名称]=“ISHARES巴克莱TIPS债券基金”
[重量]=“100”,
[位置]=“0”,
[有效到期日]=“8.647”,
[最差收益率]=“0.0772”,
[Modified_Duration]=“0.0772”,
[OAD]=“3.8629”,
[CTD]=“8.204”,
[OAC]=“8.2040”,
[OAS]=“1.112”,
[息票]=“9.034”,
[信用评级]=“1.543”,
[CUSIP]=“AAA”-您应该仅对varchar数据使用单引号!其余部分没有引号……设置问题的格式,以便可以清楚地看到哪些值进入了哪些列。至少出于故障排除的目的,您的查询应该按照列在表中的显示顺序列出列,并且您的值列表也应该垂直排列。datetime格式为yyyy-mm-dd hh:mm:ss.000 Market_value='TIPETF'可能是错误的列。您的值应该与update语句中指定的列匹配。您应该仅对varchar数据使用单引号!其余部分没有引号……设置问题的格式,以便可以清楚地看到哪些值进入了哪些列。至少出于故障排除的目的,您的查询应该按照列在表中的显示顺序列出列,并且您的值列表也应该垂直排列。datetime格式为yyyy-mm-dd hh:mm:ss.000 Market_value='TIPETF'可能是错误的列。您的值应该与update语句中指定的列匹配。