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