SQL Server中经度/纬度值的数据库存储:decimal(2,?)
在表定义中,我看到:
Latitude -> varchar(50) Longitude -> nvarchar(50) 很明显,我立即质疑这背后的想法 – 确信这些价值实际上是数字的.长话短说:我假设这些将是数字,十进制实际上,我们会抛弃’思想在弦中’的哲学. 现在为了我的困境,我只是继续输入: Latitude -> decimal(2,4) 但坚持一秒,4不对,对吗?对.所以我认为我已经达到了阈值,然后才意识到(在一瞬间我可以补充)6或8也可能不会削减它.所以,首先要做的事情…… 我是否正确坚持我们甚至这样做?如果是这样… 要存储这些值的精度,以确保我们可以保留要插入的整个值?例如,是否有任何预定义规范? 我不只是想使用Latitude这样的东西 – >十进制(2,16)原则上只是因为它与十进制(2,2)一样有缺陷.类似的问题出现在经度上,但我假设一个人的答案足以满足另一个,即十进制(3,答案). 我们正在使用MSSQL Server 2005. 看来我通过手工经验教育自己使用SQL Server,因此渲染这个问题的部分无关紧要:我只能使用十进制(x,max(x))而不是十进制(x,y)!将问题保留为输入. 解决方法十进制(2,4)表示精度的2位总数,小数点后4位. SQL Server不允许您这样做,但我认为这意味着您可以存储-0.0099到0.0099之间的值.我推荐十进制(9,6).这将在赤道处以低至约1/6英寸的精度存储.使用9或更小的精度需要5个字节的存储空间,使用10-19需要9个字节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – SQL Server – 如何在Update命令上提示索引?
- redis安装、配置、使用和redis php扩展安装教程
- SQLServer Lock
- unit-testing – 使用内存数据库进行测试.单元测试或集成测
- sql-server – 如何启用到SQL Server实例的加密连接?
- sql-server – 为什么MS SQL Server使用NTLM身份验证?
- 开启服务器防火墙 局域网内连接sqlserver数据库问题
- SqlServer查看死锁的存储过程
- sql – 如何在oracle中为每个重复的id行获取一条记录?
- 工作学习之sqlserver2005中sa用户登录失败解决办法