2013-01-13 7 views
17

次の構造を持つテーブルを持つsqlite DBがあります。LocationName Latitude Longitudeはすべてvarcharとして定義されています。どのように私は10進数の緯度を与えられた特定の緯度の範囲ですべての場所を取得するSQL文を構築することができます。それでは、varcharから10進値に変換する方法はありますか?または私はreturnステートメントをステップ実行し、手動で変換を実行する必要がありますsqlite数値へのテキストの変換

+1

SQLiteは、varchar(text) - http://www.sqlite.org/datatype3.html以外のタイプをサポートしています。実際の列に値を保存してみませんか? – xyzzycoder

+0

データベースに実際の数値として値を格納する方がはるかに効率的です。 – rmaddy

+0

私はその形式でdbを与えられました。私は変更できません。私はすることができます:) – user519274

答えて

42

http://www.sqlite.org/lang_expr.htmlで「CAST式」を参照してください。

SELECT CAST('3.02' as decimal) 
-- they aren't real decimals in sqlite, though. beware floats. 
+0

ああありがとう、私は試してみましょう。たとえば、緯度の列がN320515と定義されている場合はどうなりますか?同じことをする方法はありますか? – user519274

+0

サブストリングを抽出するための 'substr'と' N/S 'を1/-1に変換する 'case..when..end'があります。あなたは髪の毛のような表情をしますが、可能です。 UPD:可能性のあるすべての半球をテストするようにしてください:) –

+0

ありがとう、私はそのSQL文を作成する方法をさらに詳しく調べます。 – user519274

関連する問題