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に変換されます。
時間の列の時点では、floatにキャストせずに、文字列として並べ替えるとうまく並べ替えられます。ただし、何らかの理由でキャストしたい場合は、コロンを。でドットに変えることができますreplace。
replace