当前位置: 首页 > 知识库问答 >
问题:

在MySQL中存储货币值的最佳数据类型

徐安康
2023-03-14

我想在一个MySQL数据库中存储许多记录。所有这些都包含了金钱价值。但我不知道每一个会插入多少个数字。
为此我必须使用哪种数据类型?
VARCHAR或INT(或其他数值数据类型)?

共有2个答案

昝欣可
2023-03-14

您可以使用decimalnumeric两者相同

DECIMAL和NUMERIC类型存储精确的数字数据值。这些类型用于必须保持精确精度的情况下,例如货币数据。在MySQL中,NUMERIC被实现为DECIMAL,因此下面关于DECIMAL的说明同样适用于NUMERIC。:MySQL

十进制(10,2)

读得好

邵沛
2023-03-14

因为money需要精确的表示,所以不要使用只是近似的数据类型,如float。对于这种情况,您可以使用定点数值数据类型

decimal(15,2)
  • 15是精度(包括小数位在内的值的总长度)
  • 2是小数点后的位数

请参阅MySQL数值类型:

这些类型用于必须保持精确精度的情况下,例如货币数据

 类似资料:
  • 问题内容: 我想在MySQL数据库中存储许多记录。它们全部包含金钱价值。但是我不知道每个数字将插入多少个数字。 为此,我必须使用哪种数据类型? VARCHAR 或 INT (或其他数字数据类型)? 问题答案: 由于资金需要精确的表示,因此不要使用只近似的数据类型。您可以将定点数字数据类型用于 是精度(值的总长度,包括小数位) 是小数点后的位数 请参见MySQL数值类型: 当保留精确度非常重要时,例

  • 问题内容: 货币值的最佳SQL数据类型是什么?我正在使用MySQL,但希望使用与数据库无关的类型。 问题答案: 在大多数情况下,类似的东西通常效果很好。您可以调整比例和精度以适合需要存储的数字的需求。即使在SQL Server中,我也倾向于不使用“ ”,因为它是非标准的。

  • 问题内容: 我正在应用程序中处理许多不同的货币,我想知道将它们存储在SQLite3数据库中的“最佳”方法是什么。 我倾向于定点表示(即,将它们存储为整数,其中$ 3.59被存储为359,¥400被存储为40000)。这是一个好主意吗?如果我的输入数据以后更改并且需要更高的精度怎么办? 问题答案: 鉴于SQLite 3将最多使用8个字节来存储INTEGER类型,除非您要使用大于10 ^ 16的数字,

  • 问题内容: 在一个新项目中,我正在以CSV格式导入到mysql表中的数据。列之一是价格字段,该字段以欧洲格式(即,欧元)存储货币。345,83。我遇到的问题是存储此十进制分隔符。在大多数欧洲货币中,十进制分隔符为“,”,但是当我尝试在字段中插入十进制数字(例如345,83)时,出现以下错误:“行’row#的列’column_name’的数据被截断了’”。如果我使用“。” 而不是“,”可以正常工作。

  • 问题内容: 在SQL数据库中存储货币值时有关数据类型的臭名昭著的问题。 但是,在这些艰难的时期,我们现在拥有的货币最多可保留18位小数(感谢ETH)。 现在,这重新提出了经典论点。 想法 选项1 使用一个大的整数,以节省的实际价值,然后存储货币有多少位小数有(简单地将通过中译本)? 选项2 将数据类型存储在一个大的十进制数中,这不可避免地会占用大量空间。 选项3 以字符串形式存储。这会对性能产生影

  • 问题内容: 我读过我应该用 钱 ,但是在当今快节奏的世界里,现在也许已经过时了。 我应该使用什么? 问题答案: 不,钱应该还是可以的。