En la definición de la tabla vi:de almacenamiento de base de datos de los valores de longitud/latitud en SQL Server: decimal (? 2,)
Latitude -> varchar(50)
Longitude -> nvarchar(50)
Inmediatamente, obviamente, me preguntó el pensamiento detrás de esto - estar completamente seguro de estos valores de hecho son numéricos por naturaleza. Para resumir: postulé que estos serían numéricos, decimales de hecho, y que descartaríamos la filosofía de 'pensar en cuerdas'.
ya por los cuernos de mi dilema, acabo de ir adelante y proporcionado:
Latitude -> decimal(2, 4)
Pero espera un segundo, 4
no está bien, ¿verdad? Derecha. Así que pensé que subiría el umbral antes de darme cuenta (en una fracción de segundo podría agregar) que 6
o 8
podrían no cortarlo tampoco. Entonces, lo primero es lo primero ...
¿Debo insistir en que lo hagamos de esta manera? Y si es así ...
¿A qué precisión deben almacenarse estos valores para garantizar que podamos conservar todo el valor que se va a insertar? Por ejemplo, ¿hay algo predefinido por especificación?
No solo quiero usar algo como Latitude -> decimal(2, 16)
simplemente para que sea tan defectuoso como decimal(2, 2)
en principio. Y una pregunta similar se plantea específicamente para Longitude, pero supongo que la respuesta a una bastará para la otra, es decir, decimal(3, answer)
.
Estamos utilizando MSSQL Server 2005.
Parece Estoy educando a mí mismo con SQL Server por la experiencia manual y, por tanto, la prestación partes de esta pregunta irrelevante: Sólo puedo usar decimal(x, max(x))
no decimal(x, y)
de todos modos! Dejará la pregunta como está para la entrada.
¿Qué versión de SQL Server estás usando? 2008 tiene algunos tipos geoespaciales nativos incorporados, tanto para escenarios cartesianos como elipsoidales. Se llaman geometría y geografía, respectivamente. –
2008? Deseo. 2005. –
Usa tipos decimales, mira el enlace de Cade Roux –