numericfloatdecimal数据类型之间有什么区别?在哪些情况下应该使用哪些数据类型?

对于任何类型的金融交易(例如薪资领域),首选哪一种?为什么?

推荐答案

如果decimal(最多38位)提供的精度不够,请使用floatreal数据类型only if

  • 近似数字数据类型(见表3.3)不存储for many个数字指定的精确值;它们存储an extremely close个近似值.(Technet)

  • 避免在WHERE子句搜索条件中使用浮点或实数列,尤其是=和<>;接线员.最好将float和real列限制为>;或者<;比较.(Technet)

因此,通常 Select Decimal作为数据类型是最好的 Select ,如果

  • 你的号码可以放进go .Decimal precision是10E38[~38位]
  • 较小的浮点存储空间(可能还有计算速度)对您来说并不重要
  • 需要精确的数字行为,例如在金融应用程序中,在涉及舍入的操作中,或在等式判断中.(Technet)

  1. Exact数字数据类型decimal and numeric - MSDN
  • 数字=十进制(5到17字节)
  1. Approximate数字数据类型float and real - MSDN
  • 实(4字节)
  • 浮点(8字节)

Exact Numeric Data Types Approximate Numeric Data Types

main source:MCTS Self-Paced Training Kit (Exam 70-433): Microsoft® SQL Server® 2008 Database Development-第3章-表格、数据类型和声明性数据完整性第1课- Select 数据类型(指南)-第93页

Sql相关问答推荐

提取Snowflake SQL中的嵌套键

在SQL:2003(PGQ)中,Cypher查询语言、GQL、PGQL和属性图查询的常见子集是什么?'

如何在一个范围内进行分组.""范围值在范围表中定义

基于列对多行求和的查询

用于匹配红旗和绿旗的SQL查询

返回包含列和包含其他列的列表的自定义查询

LEFT JOIN不显示计数0我期望的方式

Oracle SQL根据列中的条件 Select 最大记录数

SQL:计算与另一列中给定值互斥的匹配项

将日期时间转换为日期格式

更改重复值的情况

用另一个表中的特定名称替换 SQL 查询中的 ID.但我的两个表都有多个列

SQL 中的第一个值和倒数第二个值

如何从postgresql中的项目映射(关联数组)设置值?

BigQuery导航函数计算ID

如何从一张表中获取值在至少三行相同的记录

标量子查询中的窗口函数不起作用

在 MS Access VBA 中,如何测量显示查询的时间?

为数组中的每个元素从表中收集最大整数

超过100名员工的连续行