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
我正在使用 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