1

Temat: Matematyka w SQL- przeliczanie LAT i LNG na GPS

Witam wszystkich

W bazie posiadam długosc i szerokosc geograficzna (np. 49.09223345, 18,09092323). Chcę ją przeliczyć na GPS w SQL'u.
Algorytm przeliczania z LAT(szerokosc) i LNG(dlugosc) na GPS:
1)
GPS to np. 49 32' 33''

49- stopnie
32'-minuty
33''-serkundy
lat=49.09223345
przeliczanie na stopnie- liczba_przed_przecinkiem= 49
przeliczanie na minuty- (osiem_liczb_po_przecinku * 60)/100 000 000= 09223345*60/100 000 000
przelicznaie na sekundy- (.... bla bla bla )

Co mnie interesuje- jak zrobic w SQL zeby do obliczen bralo np. osiem liczb po przecinku
np.:
z liczby: 49.09223345 bralo: 09223345
W excelu jest funkcja MID(49,09223345;4;8):
(wartosc;pozycja_startowa;liczba_znakow) - czy w SQL'u jest cos podobnego ??

2

Odp: Matematyka w SQL- przeliczanie LAT i LNG na GPS

SELECT substr(18.09092323, 4, 8);
  substr  
----------
 09092323
(1 row)

Ostatnio edytowany przez gszpetkowski (2011-09-28 15:48:45)

3

Odp: Matematyka w SQL- przeliczanie LAT i LNG na GPS

Działa poprawnie gszpetkowski dzięki :-)
Jak wezmę się wieczorem za pisanie to poniżej dopiszę jaki mi kod wyszedł może komuś się przyda.
Pozdrawiam
Michał
KOD:
SELECT lat, lng, nazwa,
(substr(lat, 1, 2)) AS latSt, (substr(lat, 4, 8))AS latMin,
(substr(lng, 1, 2)) AS lngSt, (substr(lng, 4, 8))AS lngMin 
FROM Mapa;

Niestety nie udało mi się zrobić przeliczania w SQL poniewaz mam problemy z typami (projektant bazy wartosci LAT i LNG zrobil na VARCHAR sad(

Ostatnio edytowany przez hetmanJIIIS (2011-09-30 20:32:06)