SSC-FDM-TD0031
ST_DISTANCE results are slightly different from ST_SPHERICALDISTANCE
Description
The Teradata function ST_SPHERICALDISTANCE calculates the distance between two spherical coordinates on the planet using the Haversine formula, on the other side, the Snowflake ST_DISTANCE function does not utilize the haversine formula to calculate the minimum distance between two geographical points.
Example Code
Input Code:
--The distance between New York and Los Angeles
Select Cast('POINT(-73.989308 40.741895)' As ST_GEOMETRY) As location1,
Cast('POINT(40.741895 34.053691)' As ST_GEOMETRY) As location2,
location1.ST_SPHERICALDISTANCE(location2) As Distance_In_km;
Teradata Output
location1
location2
Distance_In_Km
POINT (-73.989308 40.741895)
POINT (40.741895 34.053691)
9351139.978062356
Output Code
--The distance between New York and Los Angeles
SELECT
TO_GEOGRAPHY('POINT(-73.989308 40.741895)') As location1,
TO_GEOGRAPHY('POINT(40.741895 34.053691)') As location2,
--** SSC-FDM-TD0031 - ST_DISTANCE RESULTS ARE SLIGHTLY DIFFERENT FROM ST_SPHERICALDISTANCE **
ST_DISTANCE(
location1, location2) As Distance_In_km;
Snowflake Output
LOCATION1
LOCATION2
DISTANCE_IN_KM
{ "coordinates": [ -73.989308, 40.741895 ], "type": "Point" }
{ "coordinates": [ 40.741895, 34.053691 ], "type": "Point" }
9351154.65572674
Recommendations
If you need more support, you can email us at snowconvert-support@snowflake.com
Last updated