2

我正在为学校做数据库作业。由于睡眠不足,我现在无法思考,但我知道这是一个简单的问题。

我有这个 create table 语句,在其中,我应该有 3 列cusNoaddbalance,我可以做得很好。但我的问题在于最后一栏。最后一列用于余额,应该有一个 5 位数的数值。为此,当我创建平衡列时,我是否只需将其创建为双精度列?

像这样的东西:

CREATE TABLE tablename
(
  cusNo char(3),
  add varchar(20),
  balance double
)
4

5 回答 5

7

SQL Server中没有DOUBLE

我会提倡DECIMALover MONEYMONEY存在已知的准确性问题很少赢得性能竞赛,并且在您可以存储的内容方面非常不灵活。DECIMAL您可以自由选择比例和精度。

于 2013-03-07T17:23:59.370 回答
3

您通常不会使用 double/float 来赚钱(对不起,不仅仅是“通常”,但您永远不应该将其存储为非精确类型)。取决于您使用的 RMDS,您可以选择一种或另一种精确的数字类型。money- SQL 服务器,decimal- MySQL,NUMBER- 甲骨文

更新
我忘了提到 SQL Server 也有decimal你可能(和很多人)更喜欢的类型money

于 2013-03-07T17:11:42.173 回答
2

Use Decimal for balance. Normally, up to two decimal works fine but you can change as per your need. So you should use:

CREATE TABLE tablename
(
  cusNo char(3),
  address varchar(20),
  balance NUMERIC(7,2)
)
于 2013-03-07T17:49:36.157 回答
0

我会尝试:

CREATE TABLE tablename (cusNo INT(3), add MONEY(5), balance MONEY(5)) 

假设您尝试将总计相加,MONEY 数据类型就是您想要的(并且您在 sql server 上)。

于 2013-03-07T17:18:52.663 回答
0

在 Microsoft Access 中,使用Currency美元金额的数据类型。在 SQL Server 中使用DECIMALMONEY

于 2013-03-07T19:53:26.157 回答