Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我的数据库 sqlite 中,我有一列将浮点数和时间存储为字符串,为什么当我尝试使用此查询对它们进行排序时
select... order by cast("+filter+" as real)
以错误的顺序返回我的数字列:
22,5 23 23,5 23 23,5 24,5 24
或者我的时代专栏也有这个错误的顺序:
00:56 00:57 00:52 00:46
尝试
select... order by cast(replace("+filter+",',','.') as real)
Sqlite 期望点,而不是逗号,作为小数部分分隔符。它还默默地忽略不可转换的尾部,因此 '24,5' 被转换为 24.0。
在您的时间列中,如果您将其排序为字符串,而不是强制转换为浮点数,它将被很好地排序。但是如果你出于某种原因想要转换它,你可以用 . 将冒号变成点replace。
replace