cast(带小数的SUBSTRING)

时间:2015-09-04 11:35:11

标签: sql-server-2008 casting numbers substring decimal

我有这条线可以使我的专栏变成一个数字

       case when Auth_Amt  LIKE '%DAY%'  then cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION('/DAY' IN Auth_Amt) - 1) as numeric) when Auth_Amt  LIKE '%TAX%'  then cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION(' ' IN Auth_Amt) - 1) as numeric)
            when Auth_Amt  LIKE '%SCHG%'  then cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION(' ' IN Auth_Amt) - 1) as numeric)
            else 0
       end as Amt_Day

我可以添加什么来使它返回两个小数点。现在它是整数带回来的。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样:

yyyy-MM-dd'T'HH:mm:ss

一般来说,你必须像这样对它进行CAST:

case when Auth_Amt  LIKE '%DAY%'  then CAST(cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION('/DAY' IN Auth_Amt) - 1) as decimal(13,2)) as decimal(13,2))
     when Auth_Amt  LIKE '%TAX%'  then CAST(cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION(' ' IN Auth_Amt) - 1) as decimal(13,2)) as decimal(13,2))
     when Auth_Amt  LIKE '%SCHG%' then CAST(cast(SUBSTRING(Auth_Amt FROM 1 FOR POSITION(' ' IN Auth_Amt) - 1) as decimal(13,2)) as decimal(13,2))
      else 0
end as Amt_Day