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