3

度/分/秒(列Aに保存)を小数(新しい列Bに保存)に変換するSQLスクリプトはありますか?私は既存のソリューションをグーグルで検索しましたが、すべての例は10進数->度/分/秒を参照しています。私はSQLスクリプティングが苦手なので、どんな例でもありがたいです。

4

4 に答える 4

4

以下はうまくいくようです:

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)

または、すべてを 1 つの式として使用する場合は、次のようにします。

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 が返す結果と一致しています。:-)

共有してお楽しみください。

于 2012-08-30T11:32:16.103 に答える