Gra*_*mas 6 sql sql-server types geocoding
在表定义中,我看到:
Latitude -> varchar(50)
Longitude -> nvarchar(50)
Run Code Online (Sandbox Code Playgroud)
很明显,我立即质疑这背后的想法 - 确信这些价值实际上是数字的.长话短说:我假设这些将是数字,十进制实际上,我们会抛弃'思想在弦中'的哲学.
现在为了我的困境,我只是继续输入:
Latitude -> decimal(2, 4)
Run Code Online (Sandbox Code Playgroud)
但坚持一秒,4不对,对吗?对.所以我认为我在达到阈值之前(可能会在一瞬间添加)6或者8也可能不会削减它.所以,首先要做的事情......
我是否正确坚持我们甚至这样做?如果是这样...
要存储这些值的精度,以确保我们可以保留要插入的整个值?例如,是否有任何预定义规范?
我不仅仅想使用Latitude -> decimal(2, 16)简单的东西,就像它decimal(2, 2)原则上一样有缺陷.类似的问题出现在经度专门,但我假设一个人的答案足够另一个,即decimal(3, answer).
我们正在使用MSSQL Server 2005.
我似乎是通过手工经验教育自己使用SQL Server,因此这个问题的部分内容无关紧要:我无论如何都只能使用decimal(x, max(x))它decimal(x, y)!将问题保留为输入.
Jas*_*aat 19
十进制(2,4)表示精度的2位总数,小数点后4位.SQL Server将不会让你这样做,但我认为这将意味着你可以存储值从-0.0099到0.0099.
我推荐十进制(9,6).这将在赤道处以低至约1/6英寸的精度存储.使用9或更小的精度需要5个字节的存储空间,使用10-19需要9个字节.