Sky*_*ard -1 sql t-sql sql-server
如何在money数据类型中保留小数位后面的数字?我遇到的问题是每当我尝试将数据转换为字符串时,我都会失去精确度......
例如:
我正在尝试使用money数据类型来存储电话号码(它似乎是最优的存储大小)编辑:存储大小对我来说是一个主要问题(8字节为money数据类型而不是varchar字段的16+字节)
如果我在小数点右侧存储10位数字,小数点右侧3-4位数作为扩展名,当我尝试"解析"扩展名时,我似乎丢失了超过2位数的数字
所以这样的电话号码:(305)444-1234分机283将存储在这样的货币数据类型中:3054441234.283
我遇到的问题是如果我使用CAST(myMoneyValue作为varchar(x))则3054441234.283变为3054441234.28
有人可以帮忙吗?
EDIT2:让我假装片刻我没有提到在那里存储电话号码...让我说有一个原因我需要将money数据类型与varchar字段连接起来......例如,如果我想连接'$ $ '+ 0.1125 +'/ sqft.' - 有没有办法保留钱币领域的.0025部分?
您将电话号码存储在varchar字段中,可能会分解为国家/地区代码,分机号码等.
如果你坚持,那么:
许多国家使用的领先零怎么样?
停止使用money数据类型来存储电话号码.如果您想将它作为varchar,那么将其存储为varchar.将它存储为其他东西只是为了稍后转换它是没有意义的.
它也会让以后查看你的数据的其他人感到困惑(比如你被公共汽车撞到并且没有留下任何文件).此外,强制转换可能会导致索引使用问题,并且可能会严重降低查询速度.
| 归档时间: |
|
| 查看次数: |
5010 次 |
| 最近记录: |