在Tsql的Money DataType中使用货币符号有什么用?

时间:2015-12-18 06:14:02

标签: sql-server tsql

当我在MSQL中引用MSDN关于MONEY数据类型时,我找到了一个货币符号列表。

任何人都可以指定使用与TSQL查询相关的那些符号

 https://msdn.microsoft.com/en-IN/library/ms179882.aspx

1 个答案:

答案 0 :(得分:1)

这些符号的存在会影响常量的解释SELECT £1.00是money数据类型的文字。没有前缀,它将被视为十进制/数字。

SELECT sql_variant_property($1.00,'basetype') AS basetype,
       sql_variant_property($1.00,'precision') AS precision, 
       sql_variant_property($1.00,'scale') AS scale, 
       sql_variant_property($1.00,'maxlength') AS maxlength

+----------+-----------+-------+-----------+
| basetype | precision | scale | maxlength |
+----------+-----------+-------+-----------+
| money    |        19 |     4 |         8 |
+----------+-----------+-------+-----------+
SELECT sql_variant_property(1.00,'basetype') AS basetype,
       sql_variant_property(1.00,'precision') AS precision, 
       sql_variant_property(1.00,'scale') AS scale, 
       sql_variant_property(1.00,'maxlength') AS maxlength

+----------+-----------+-------+-----------+
| basetype | precision | scale | maxlength |
+----------+-----------+-------+-----------+
| numeric  |         3 |     2 |         5 |
+----------+-----------+-------+-----------+

使用哪一个没有区别。

SELECT CASE
         WHEN $1.00 = £1.00
           THEN 'Equal'
         ELSE 'Not Equal'
       END /*Returns Equal*/

这些是转换为金钱的字符串中的可选前缀。如果它们存在与否则没有区别。