sql server中如何将[varchar]类型字段值赋值给[money]字段?比如某个字段Price[varchar],值:6.0001,赋值给另一字段Tax[money],如何实现?
错误提示:
消息 260,级别 16,状态 1,第 1 行
不允许从数据类型 varchar 到数据类型 money 的隐性转换。请使用 CONVERT 函数来运行此查询。

解决方案 »

  1.   

    update Tax = convert(money,Price)
    from table
      

  2.   

    估计是sql2k 吧update a set a.[a]=cast(b.[a] as money) from ta a,tb b where a.id=b.id--如果这样的话insert的时候这个对应的字段不能加引号
    insert into ta values(6.001)
    --不能是下面的
    insert into ta values('6.001')
     
      

  3.   

    消息 235,级别 16,状态 0,第 1 行
    无法将 char 值转换为 money。该 char 值的语法有误。
      

  4.   

    CREATE TABLE [dbo].[Invoice_Info](
    [cInvoiceID] [int] IDENTITY(1,1) NOT NULL,
    [cInvoiceNo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cCusCompanyName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cCusCompanyAddress] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [cContacter] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cContactTel] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cInvoiceDate] [datetime] NULL,
    [cAccuID] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccuCompanyName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccuCompanyAddress] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccuLinkMan] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccuLinkTel] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cBankName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccountName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cBankAddr] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cAccountNumber] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [SwiftCode] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cTotalPrice] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cTotalMoneyType] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cAddPrice] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cAddPriceRe] [varchar](1000) COLLATE Chinese_PRC_CI_AS NULL,
    [cTaxPrice] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_Invoice_Info_cTaxPrice]  DEFAULT ('0'),
    [cTax] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cBigLeterPrice] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [cInvoiceType] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [cInvoiceTime] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [iStatus] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [dCreateDate] [datetime] NULL,
    [cCreateID] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [dModifyDate] [datetime] NULL,
    [cModifyID] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [rate] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
     CONSTRAINT [PK_Invoice_Info] PRIMARY KEY CLUSTERED 
    (
    [cInvoiceID] ASC
    ) ON [PRIMARY]
    ) ON [PRIMARY]
      

  5.   

    select sum(cast(cTotalPrice as money)*cast(rate as money)) as TotalPrice ,datediff(d,min(dCreateDate),max(dCreateDate)) as diffdate from Invoice_Info 即提示:消息 235,级别 16,状态 0,第 1 行
    无法将 char 值转换为 money。该 char 值的语法有误。