这是在SQL Server 2008上。
我要将几列从money
和decimal
转换为varchar
,例如名为item_amount
的列。
如何转换这些值?
是否与convert(varchar, item_amount)
相同?运行像select item_amount, convert(varchar, item_amount) from <table>
这样的查询会使列完全相同,这就是我期望和想要的。
我应该避免可能的截断,对吗?
假设varchar
列中有足够的字符(从小数点的max precision for a decimal column is 38 + 1个字符开始,这将是39)。没有任何数值甚至接近38位数,大多数在3-5范围内。
我已经在测试表上成功运行了这个命令,并且想要确保我没有忽略或忘记会让我感到困惑的事情:alter table <mytable> alter column item_amount varchar(39) default '0'
(这是在删除现有默认值之后( (0))约束)。
答案 0 :(得分:2)
关于转换的方式,是的,只要您放置的VARCHAR列具有正确的可用字符数,您就是正确的。
关于你对varchar的金额变化,你应该没事,因为它会进行转换。
我只需要注意,执行此操作听起来不是一个好主意,因为您不再需要与数字进行排序,过滤等交互....但只是注释。