MySQL 버전 : 5.7.22를 사용하고 있습니다.
Decimal 형식으로 변환하려는 두 개의 위도 및 경도 열이 모두도 / 분 / 초 형식 48° 52.250' N
으로 있습니다.48.93611111
다음 스크립트가 있지만 분과 초를 나누는 방법에 갇혀 있습니다. left(Latitude,2)
도에 소수점 3 자리가있을 수 있으므로 여기서 한 것처럼 값을 하드 코딩 할 수 없습니다.
SELECT Latitude,
left(Latitude, 2) +
(TRUNCATE((Latitude - TRUNCATE(Latitude)) * 100) / 60) +
(((Latitude * 100) - TRUNCATE(Latitude * 100)) * 100) / (60 * 60) AS DECIMAL_DEGREES
FROM small_ocean_data
변환 공식은 다음과 같습니다. D + M/60 + S/3600 * -1 if direction in ['W', 'S'] else 1
어떤 도움이라도 감사하겠습니다!
제가 여러분의 공식을 사용한다면 : D + M / 60 + S / 3600 여기서 D는도이고 M은 분이고 S는 초입니다. 이 선택으로 :
select SUBSTRING_INDEX('48° 52.250', '°',1) +
(SUBSTRING_INDEX('48° 52.250',' ',1)/60) +
(SUBSTRING_INDEX('48° 52.250','.',1)/3600);
또는 데이터베이스의 경우 :
select SUBSTRING_INDEX(Latitude, '°', 1) +
(SUBSTRING_INDEX(Latitude ,' ',1)/60) +
(SUBSTRING_INDEX(Latitude ,'.',1)/3600) "DECIMAL_DEGREES"
FROM small_ocean_data;
48.81333333333333을 얻 습니다.
48 + 0.8 + 0.013333333333333334
여기 데모입니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다