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语句中指定的列匹配。