私はFLOAT (10,6)
に変換したい文字列(VARCHAR
)として格納されている緯度と経度の値を含むテーブルを持っています。mysqlの文字列をfloatに変換するにはどうすればよいですか?
CAST()
またはCONVERT()
を使用してこれを行う簡単な方法はありません。
これらの列は簡単にどのように変換できますか?これは1回限りの変換です。
私はFLOAT (10,6)
に変換したい文字列(VARCHAR
)として格納されている緯度と経度の値を含むテーブルを持っています。mysqlの文字列をfloatに変換するにはどうすればよいですか?
CAST()
またはCONVERT()
を使用してこれを行う簡単な方法はありません。
これらの列は簡単にどのように変換できますか?これは1回限りの変換です。
それは私がちょうどCAST()
説明にDECIMAL
がありませんでしたが判明:
DECIMAL[(M[,D])]
DECIMALデータ型に値を変換します。オプションの引数MとDは、小数点以下の桁数(Mは桁数を指定します)と小数点以下の桁数(Dは桁数を指定します)を指定します。デフォルトの精度は、小数点以下2桁です。
したがって、次のクエリでは、働いていた:
UPDATE table SET
latitude = CAST(old_latitude AS DECIMAL(10,6)),
longitude = CAST(old_longitude AS DECIMAL(10,6));
mysql> SELECT CAST(4 AS DECIMAL(4,3));
+-------------------------+
| CAST(4 AS DECIMAL(4,3)) |
+-------------------------+
| 4.000 |
+-------------------------+
1 row in set (0.00 sec)
mysql> SELECT CAST('4.5s' AS DECIMAL(4,3));
+------------------------------+
| CAST('4.5s' AS DECIMAL(4,3)) |
+------------------------------+
| 4.500 |
+------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CAST('a4.5s' AS DECIMAL(4,3));
+-------------------------------+
| CAST('a4.5s' AS DECIMAL(4,3)) |
+-------------------------------+
| 0.000 |
+-------------------------------+
1 row in set, 1 warning (0.00 sec)
を私が行ったように ')' CAST'と '(間にスペースを入れないでください。 'エラーコード:1064.あなたはSQL構文にエラーがあります' – SBF