在 SQL Server 中应该选择 MONEY 还是 DECIMAL(x,y) 数据类型?

2023-11-21

我很好奇两者之间是否有真正的区别money数据类型和类似的东西decimal(19,4)(我相信,这就是金钱在内部使用的用途)。

我知道money特定于 SQL Server。我想知道是否有令人信服的理由选择其中之一;大多数 SQL Server 示例(例如 AdventureWorks 数据库)使用money并不是decimal用于价格信息等信息。

我应该继续使用资金数据类型,还是使用十进制有好处?钱就是要输入的字符更少,但这不是一个有效的理由:)


你永远不应该使用金钱。不精确,纯属垃圾;始终使用小数/数字。

运行这个看看我的意思:

DECLARE
    @mon1 MONEY,
    @mon2 MONEY,
    @mon3 MONEY,
    @mon4 MONEY,
    @num1 DECIMAL(19,4),
    @num2 DECIMAL(19,4),
    @num3 DECIMAL(19,4),
    @num4 DECIMAL(19,4)

    SELECT
    @mon1 = 100, @mon2 = 339, @mon3 = 10000,
    @num1 = 100, @num2 = 339, @num3 = 10000

    SET @mon4 = @mon1/@mon2*@mon3
    SET @num4 = @num1/@num2*@num3

    SELECT @mon4 AS moneyresult,
    @num4 AS numericresult

输出:2949.0000 2949.8525

对于那些说你不按钱分钱的人:

这是我计算相关性的查询之一,将其更改为金钱会给出错误的结果。

select t1.index_id,t2.index_id,(avg(t1.monret*t2.monret)
    -(avg(t1.monret) * avg(t2.monret)))
            /((sqrt(avg(square(t1.monret)) - square(avg(t1.monret))))
            *(sqrt(avg(square(t2.monret)) - square(avg(t2.monret))))),
current_timestamp,@MaxDate
            from Table1 t1  join Table1 t2  on t1.Date = traDate
            group by t1.index_id,t2.index_id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL Server 中应该选择 MONEY 还是 DECIMAL(x,y) 数据类型? 的相关文章

  • Scala Array.apply 有何魔力

    来自 scala 2 10 4 的 array scala Array定义为 final class Array T length Int extends java io Serializable with java lang Clonea
  • 在 SQLCMD 模式下格式化输出?

    有没有办法可以指定输出文件格式SQLCMD模式这样我就可以使用它读回来BULK INSERT 我想做这样的事情 CONNECT SERVER1 OUT E test SELECT TOP 100 ID NAME FROM DB1 dbo T
  • 需要 SQL Server 查询帮助

    我在视图中存储一堆数据 将 MS Access 查询转换为视图 现在我想做的是编写一个存储过程来根据添加数据的时间提取数据 这是我正在运行的查询 Select Name PlanID ApptDate 1stAppt rn from Sel
  • 将单个列连接到逗号分隔的列表中[重复]

    这个问题在这里已经有答案了 我已经看到了人们将单个列滚动到逗号分隔列表中的多个示例 但我需要更多 这是我需要的数据和结果的示例 DECLARE SalesPerson table SalesPersonID int SalesPersonN
  • 插入后用触发器更新多行(sql server)

    我有一个表 orderDetails 包含订单的产品 产品编号 color size quantity 和一个表库存 产品编号 size color stock 订单完成后 我使用此查询将项目插入表中orderDetails INSERT
  • Visual Studio SSDT Data Compare如何比较单个数据库中的两个表

    尝试在 SSDT 中做一些简单的数据比较 但事实证明有点困难 在一个数据库中 我有两个要比较的表 这些表具有相同的架构 只是表名不同 我只是想看看这个工具是否能给我一个很好的方法来比较两者的数据 I e tblOutput tblOutpu
  • Sql Server:如何在 WHERE 子句中使用 MAX 等聚合函数

    我想获得该记录的最大值 请帮我 SELECT rest field1 FROM mastertable AS m INNER JOIN SELECT t1 field1 field1 t2 field2 FROM table1 AS T1
  • 无法在 SSIS 2012 上使用敏感项目参数

    在 SSIS 2012 中 我尝试对 Oracle 的 OLEDB 连接使用敏感项目参数 它与 Sensitive 属性设置为完美配合FALSE 在项目参数设计器中 但我不希望密码像那样可见 一旦我将敏感属性设置为TRUE并尝试执行我的包
  • 如何从经典 ASP 读取 SQL Always-加密列

    我维护一个经典的 ASP 应用程序 是的 我知道 我们正在开发它 并且需要访问 SQL 2017 中的 Always Encrypted 列 我已经导入了证书并在 SSMS 和 PowerShell 中进行了测试 这很有效 我在 ASP 中
  • SQL Server freetexttable 部分单词

    我第一次使用 SQL 自由文本搜索 我有点困惑为什么它会这样 我有一个联系人表 用户可以搜索并且我正在使用 SELECT Contacts Rank FROM FREETEXTTABLE Contacts O Roarty AS Conta
  • java中获取HashMap中的变量类型

    我有一个HashMap
  • 从表中删除孤儿

    我正在尝试清理一张有很多孤立项目的桌子 我通过查找空值来检查是否与另一个表存在关系来解决此问题 DELETE FROM table1 LEFT JOIN table2 ON table1 ID table2 ID WHERE table2
  • 如何授予所有表的 REFERENCES 权限

    我必须授予REFERENCES登录权限说sql login 我可以给予资助REFERENCES对单个表的权限 例如 GRANT REFERENCES ON Mytable TO sql login 有什么办法可以授予REFERENCES允许
  • 如何在SSRS 2012中显示基于总金额的前10名

    我只需要显示前 10 名Class基于Total SUM Premium 柱子 我转到类代码属性组 gt 过滤器并按 SUM Net Written Premium 设置前 10 名 但它不起作用 我只需要显示前 10 名 而且总金额也应该
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 在 Sql Server 中转换为日期时间 MM/dd/yyyy HH:mm:ss

    如何将给定的日期格式转换为MM dd yyyy HH mm ss 我尝试了下面这个但没有实现 谁能帮我 SELECT CONVERT VARCHAR 20 GETDATE 120 SQL Server 2005及以上版本支持 SELECT
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这

随机推荐

  • Webpack 找不到模块“电子”

    我正在尝试开发一个基于电子 Angular2 的小应用程序本教程 看来他们的 webpack 捆绑存在一些错误 因为我无法在渲染器组件中要求 导入电子遥控器 在我的 AppComponent 中我执行以下操作 import remote f
  • 无法添加名称为“testCompile”的配置,因为该名称的配置已存在

    更新到 gradle 插件 1 1 0 时 我不断收到以下错误 Cannot add a configuration with name testCompile as a configuration with that name alrea
  • 在 Visual Studio 设计器中为控件指定双击事件

    当您双击Control在 Visual Studio 设计器中 您会自动订阅一些event并在代码隐藏文件中生成事件处理程序 双击以下控件即可订阅相应的事件 UserControl Loaded Button Click TextBox 文
  • 如何在SQL Server数据库中使用UTF-8排序规则?

    我已经将数据库从mysql迁移到SQL Server 政治 原始mysql数据库使用UTF8 现在我读了https dba stackexchange com questions 7346 sql server 2005 2008 utf
  • Eclipse Android:无法打开选定的VM调试端口(8700)[重复]

    这个问题在这里已经有答案了 可能的重复 无法打开选定的 VM 调试端口 8700 打开时我在控制台上收到此错误Eclipse 无法打开选定的 VM 调试端口 8700 请确保您没有运行 DDMS 或 eclipse 插件的另一个实例 如果它
  • 删除 R 中的大括号

    如何删除R中的大括号 例如 abcd 到 abcd 如何使用 R 中的 gsub 函数来执行此操作 如果有其他方法可用 请建议 尝试这个 gsub abcd 1 abcd Or this gsub abcd
  • 如何从 javascript 文件中提取 javascript 函数

    我需要从脚本文件中提取整个 javascript 函数 我知道该函数的名称 但我不知道该函数的内容可能是什么 该函数可以嵌入任意数量的闭包中 我需要有两个输出值 我在输入脚本中找到的命名函数的整个主体 删除了找到的命名函数的完整输入脚本 所
  • 如何确保docker的时间与主机的时间同步?

    我有在 Linode 服务器上运行的 docker 有时 我发现码头工人的时间不对 目前我已经更改了每个泊坞窗中的运行脚本以包含以下代码行 yum install y ntp service ntpd stop ntpdate pool n
  • DispatchQueue.main.asyncAfter 不准确

    我试图在延迟后调用一个函数 在 iOS10 上 我可以使用 Timer scheduledTimer 它确实会在给定的延迟后调用我的闭包 但是 在 iOS9 上 我使用 DispatchQueue main asyncAfter 它会延迟六
  • 如何在flutter中使用“DateTime”显示月份

    我有一个日历 我想在日历上方显示月份 有没有办法只显示当前月份 归功于https github com adamstyrc 对于图像 它应该看起来像这样 使用以下包作为 DateFormat https pub dev packages i
  • 我们可以说 String 是 Javascript 中的对象吗?

    当我听到字符串是 JS 中的基元时 我总是很困惑 因为每个人都知道字符串有不同的方法 例如 length indexOf search 等 let string Please locate where locate occurs let p
  • clang 和 gcc 中是否有 Visual C++ __declspec (属性声明属性)的替代方案?

    有一个 Microsoft 特定的扩展 它可以像这样定义属性 getter 和 setter declspec property cpp struct S int i void putprop int j i j int getprop r
  • xpath 和 c#

    我正在尝试创建一个通过 XML 文档进行搜索的 winform 应用程序 对于我的搜索 我需要使用 lower case xpath 函数将 xpath 条件中的 XML 属性转换为小写 这会导致与函数命名空间相关的问题 我尝试手动添加名称
  • 如何在稀疏点之间插入数据以在 R 和plotly 中绘制等高线图

    我想根据第一幅图中以下彩色点的浓度数据在 xy 平面上创建等值线图 我在每个高度都没有角点 因此我需要将浓度外推到 xy 平面的边缘 xlim c 0 335 ylim c 0 426 The plotly html file of the
  • 如何使用 Ajax 解决“NS_ERROR_ILLEGAL_VALUE”错误?

    我只是编写一个小型 Ajax 框架以实现小型项目中的可重用性 但我遇到了问题 基本上我得到一个 NS ERROR ILLEGAL VALUE 发送请求时出错 我不知道发生了什么 HTML 页面 已修剪但显示错误
  • C++ 链接器错误:仅在优化构建上未定义引用

    我收到未定义的引用链接器错误only当链接优化的对象文件时 not链接未优化的目标文件时 我不明白问题是什么或可能是什么 这是我未优化的构建 Building file COMPASS cpp Invoking GCC C Compiler
  • 我可以更改共享主机上的“ft_min_word_len”吗?

    我在共享主机上有 MySQL 有什么办法可以改变的值ft min word len没有管理员权限 我找到了一种解决方法 其中每个少于 4 个字符的单词都用 或其他一些字符进行补充 并且对每个少于 4 个字符的搜索关键字也执行相同的操作 有没
  • Sklearn 的 MinMaxScaler 只返回零

    我正在尝试使用将某个数字缩放到 0 1 的范围preprocessing from sklearn 这就是我所做的 data 44 645 44 055 44 54 44 04 43 975 43 49 42 04 42 6 42 46 4
  • str.setCharAt(索引,'X')

    有没有办法使用 str charAt index 通过索引替换特定字符 像这样的东西 str setCharAt 1 X replace 2nd char with X 有什么简单的方法可以做到这一点吗 取决于来源str你也许可以这样做 S
  • 在 SQL Server 中应该选择 MONEY 还是 DECIMAL(x,y) 数据类型?

    我很好奇两者之间是否有真正的区别money数据类型和类似的东西decimal 19 4 我相信 这就是金钱在内部使用的用途 我知道money特定于 SQL Server 我想知道是否有令人信服的理由选择其中之一 大多数 SQL Server