1

これはSQLServer2008にあります。

money変換したい列と変換decimalしたい列がいくつかあります。varcharたとえば、。という列item_amountです。

  • これらの値はどのように変換されますか?

    と同じconvert(varchar, item_amount)でしょうか?のようなクエリを実行select item_amount, convert(varchar, item_amount) from <table>すると、列が同じようにレンダリングされます。これは、私が期待していることです。

  • 切り捨ての可能性から安全である必要がありますよね?

    列に十分な文字があると仮定します(10進列の最大精度は38 +小数点の1文字であるため、varchar39になります)。いずれの数値も38桁に近くなく、ほとんどが3〜5の範囲です。

  • 私はこのコマンドをテストテーブルで正常に実行しましたが、私を台無しにする何かを見落としたり忘れたりしていないことを確認したいと思います:(alter table <mytable> alter column item_amount varchar(39) default '0'これは既存のデフォルト((0))制約を削除した後です)。

4

1 に答える 1

2

変換の実行方法に関しては、配置するVARCHAR列に適切な文字数が使用可能である限り、正しいです。

varcharへの金額の変更に関しては、変換が行われるため、ここでは問題ありません。

並べ替えやフィルタリングなどのために数値を操作しなくなったため、これを行うのは良い考えではないように思われることに注意する必要があります。

于 2011-01-13T22:21:07.820 に答える