SQL 插入钱时使用的数据类型

SQL Datatype to use when inserting money

我正在使用 Oracle SQL 数据库,我必须在一行中插入一个货币值(薪水)。由于某些奇怪的原因,money 命令无法正常工作,是否有任何替代方法可以使用它?

数据输入格式:£00,000.000

CREATE TABLE staff
                   (staffno CHAR(6) NOT NULL
                    , staffsurname VARCHAR(8) NOT NULL
                    , staffforename VARCHAR(7) NOT NULL
                    , salary MONEY NOT NULL
                    , PRIMARY KEY (staffno)
                   );

"strange"原因很简单:There is no MONEY data type.

最适合货币值的数据类型是 NUMBER(使用适当的 scale)。由于它是 decimal 浮点类型,因此它比 binary 浮点类型 BINARY_FLOAT 更适合货币值,并且BINARY_DOUBLE.

不过请注意,您仍然需要在前端解析输入字符串£00,000.000并将其作为数值发送 到后端。

看看这一行

salary MONEY NOT NULL

不存在货币数据类型。

如果您正在寻找类似于 SQL-Server 小钱类型的东西,您想要使用 Number(10,4) 然后格式化数字。

您可以使用 to_char 函数

格式化数字
select to_char(yourColumn, ',999.99') from yourTable where someCondition