小编典典

使用SQL将度/分/秒转换为小数

sql

是否有任何SQL脚本将“度/分/秒”(保存在A列中)转换为小数(保存在新的B列中)?我用谷歌搜索了现有的解决方案,但所有示例均参考Decimals->
Deg / Min / Sec。我赞赏任何示例,因为我不擅长SQL脚本编写。


阅读 250

收藏
2021-04-14

共1个答案

小编典典

以下似乎有效:

SELECT DMS, DEGREES + (MINUTES / 60) + (SECONDS / (60 * 60)) AS DECIMAL_DEGREES
  FROM (SELECT DMS,
               TRUNC(DMS) AS DEGREES,
               TRUNC((DMS - TRUNC(DMS)) * 100) AS MINUTES,
               ((DMS * 100) - TRUNC(DMS * 100)) * 100 AS SECONDS
          FROM TEST_DMS)

或者,如果您更喜欢所有这些作为一个表达式:

SELECT DMS,
       TRUNC(DMS) +
         (TRUNC((DMS - TRUNC(DMS)) * 100) / 60) +
         (((DMS * 100) - TRUNC(DMS * 100)) * 100) / (60 * 60) AS DECIMAL_DEGREES
  FROM TEST_DMS

至少这些与我可信赖,生锈的HP-41C返回的结果一致。:-)

分享并享受。

2021-04-14