我有一个 SQLitedb,有一列:amount text not null
在金额列中,我以这种格式存储美元值:1.01 美元、40.58 美元等。
我正在尝试使用
来总结美元值(value)SELECT SUM(amount) FROM record WHERE date LIKE '"+date+"'"
然而,它不起作用,大概是因为你不能添加文本。我知道这不是理想的存储方式,但我该如何解析金额以便将它们相加?
最佳答案
好吧,正如您所说,这远不是存储值的理想方式(从一开始就应该采用 decimal
/real
格式),但是您可以做这样的事情:
SELECT SUM(SUBSTR(amount, 2)) FROM record WHERE date LIKE '"+date+"'"
SUBSTR
方法是一个文本函数,它将获取文本的一部分(在本例中,从起始索引开始)。这里的问题是 $
符号,它混淆了动态类型转换,让您相信您正在尝试将字符串加在一起。
这现在应该可以工作了,因为 SQLLite 允许 dynamic typing (简而言之,意思是用于比较的是值,而不是容器)。
关于java - Sqlite 将文本转换为十进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171091/