You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析KMyMoney导出SQLite中的特殊会计数字格式?

解决KMyMoney导出SQLite数据的金额解析问题

一、转换valueFormatted的会计格式金额

针对括号表示负数的会计格式,可通过字符串替换和条件判断将其转为标准数字格式,再转换为浮点数:

SELECT
  -- 先转成标准数字文本,再转为浮点数
  CAST(
    CASE
      WHEN valueFormatted LIKE '(%)' THEN '-' || REPLACE(REPLACE(valueFormatted, '(', ''), ')', '')
      ELSE valueFormatted
    END AS FLOAT
  ) AS amount
FROM kmmSplits;

逻辑说明:

  • 用LIKE '(%)'识别带括号的负数格式
  • 两次REPLACE去掉括号,前置负号转为标准负数写法
  • 正数直接保留原文本,最后统一CAST为浮点数

二、计算value字段的除法等式

SQLite没有内置执行字符串表达式的功能,需拆分除法字符串后手动计算:

SELECT
  value,
  -- 拆分被除数和除数,计算实际值
  CAST(SUBSTR(value, 1, INSTR(value, '/') - 1) AS FLOAT) 
  / 
  CAST(SUBSTR(value, INSTR(value, '/') + 1) AS FLOAT) AS calculated_amount
FROM kmmSplits;

逻辑说明:

  • 用INSTR(value, '/')定位除法符号的位置
  • 用SUBSTR拆分出被除数(/前的内容)和除数(/后的内容)
  • 分别转为浮点数后执行除法运算
  • 如果value带空格(比如"1234 / 100"),可先加REPLACE(value, ' ', '')去除空格再拆分

内容的提问来源于stack exchange,提问作者user1526973

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:50:19