Как обновить широту и долготу в SQL Server

UPDATE [Tree_Monitoring_Philips].[dbo].[T_NumberOfTrees]
SET [TreeLatitude] = '18°38'33.8352"',
    [TreeLongitude] = N'73°48'9.85"E' 
WHERE [ID] = 1

Как обновить широту и долготу на SQL-сервере? Широта и долгота выражаются в градусах в минутах и ​​секундах, а SQL Server включает запрос на обновление в течение нескольких минут в соответствии с определенным форматом запроса на обновление и не выполняет запрос.

Они выглядят как строки, а не как географические данные, поэтому вам следует обновить значение, как и любую другую строку. Почему вы считаете, что тот факт, что строка представляет местоположение, меняет ситуацию?

Thom A 30.07.2024 14:33

Каковы фактические типы данных этих столбцов? В любом случае, используемые вами строковые литералы недопустимы, поскольку ' в середине необходимо экранировать, например: '18°38''33.8352"' вместо '18°38'33.8352"'.

AlwaysLearning 30.07.2024 15:03

Неясно, какой тип данных имеет ваш столбец. Что вы получаете, когда SELECT TOP 1 TreeLatitude FROM Tree_Monitoring_Philips.dbo.T_NumberOfTrees? Если вы получили значение типа 18,642732, скорее всего, у вас десятичные градусы, и вам придется разобрать ваше значение на отдельные значения градусов, минут и секунд, а затем вычислить десятичные градусы, как описал Джон Каппеллетти выше. Южные широты и западные долготы обычно представляются как отрицательные значения.

T N 30.07.2024 15:22

Есть ли какая-либо причина, по которой вы не используете встроенный тип данных geography?

Charlieface 30.07.2024 16:06
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите использовать формат DMS, вам следует использовать (''). Вот пример,

SET [TreeLatitude] = '18°38''33.8352"',
    [TreeLongitude] = '73°48''9.85"E'

Другие вопросы по теме