В определении таблицы я увидел:
Latitude -> varchar(50)
Longitude -> nvarchar(50)
Сразу же, очевидно, я поставил под сомнение то, что стоит за этим - будучи уверенным, что эти значения на самом деле являются числовыми по своей природе.Короче говоря: я постулировал, что они будут числовыми, на самом деле десятичными, и мы отбросим философию «мышления в строках».
Теперь, чтобы понять мои дилеммы, я просто пошел дальше и напечатал:
Latitude -> decimal(2, 4)
Но подождите секунду, 4
не так, верно?Правильно.Поэтому я подумал, что смогу подняться до порогового значения, прежде чем понял (за долю секунды я мог бы добавить), что 6
или 8
тоже не могут его сократить.Итак, обо всем по порядку ...
Правильно ли я настаиваю, чтобы мы даже пошли по этому пути?И если это так ...
С какой точностью должны храниться эти значения, чтобы мы могли сохранить все значение, которое должно быть вставлено?Например, есть ли что-то предопределенное спецификацией?
Я не просто хочу использовать что-то вроде Latitude -> decimal(2, 16)
просто для того, чтобы оно было таким же недостатком, как и decimal(2, 2)
в принципе.И аналогичный вопрос возникает конкретно для Longitude, но я предполагаю, что ответа на один будет достаточно для другого, то есть decimal(3, answer)
.
Мы используем MSSQL Server 2005.
Кажется, яя изучаю SQL Server вручную, и поэтому не рассматриваю некоторые части этого вопроса: я все равно могу использовать только decimal(x, max(x))
, а не decimal(x, y)
!Оставит вопрос как есть для ввода.