我试图转换我目前的位置Lat.S3251多头:: S3251 Long: W07122位置转换为学位格式,即学位Lat Long -32.8500000, -071.3666667。Ie Degrees Lat Long -32.8500000, -071.3666667。
这些数据在mysql列中是这样的。
Ship1 S3251 W07122
我想弄清楚mysql查询是这样显示的。
Ship1 -32.8500000 -071.3666667
因此,我可以在谷歌地图上使用它,它需要小数的Lat Long。
我如何使用mysql转换?谅谅
你可以使用一些函数来分离数据值,以便在公式中使用。下面的例子查询。
SELECT CASE WHEN latt LIKE 'S%' THEN (SUBSTRING(latt,2,2)+(RIGHT(latt,2)/60)+(0/3600))*-1
WHEN latt LIKE 'N%' THEN SUBSTRING(latt,2,2)+(RIGHT(latt,2)/60)+(0/3600) END AS 'Latitude',
CASE WHEN longt LIKE 'W%' THEN (SUBSTRING(longt,2,3)+(RIGHT(longt,2)/60)+(0/3600))*-1
WHEN longt LIKE 'E%' THEN SUBSTRING(longt,2,3)+(RIGHT(longt,2)/60)+(0/3600) END AS 'Longitude'
FROM test1;
如你所见,我使用了 CASE
表达式来识别方向。SUBSTRING()
和 RIGHT()
函数来分离公式的度数和分值。
PS: 或者你也可以用 SUBSTRING()
与 MID()
. 两者的操作都一样,后者的写法要短得多。
这是用一个公式从 第一环节 你在评论中提供的。
我在这里做了一个小提琴的例子: https:/www.db-fiddle.comfcJjaArst8aZmQesyWDDXim1