我应该为Tickets表使用什么数据类型?

时间:2016-03-25 23:01:09

标签: mysql sqldatatypes

我正在创建一个表格,用于列出我数据库中某个旅游特定场馆的门票价格。

由于旅行团位于英国,价格需要以英国货币(£0.00)计算。但是,当设置价格列的数据类型时,我不确定哪种数据类型允许英国货币的格式适合。所以我使用DOUBLE PRECISION,但在尝试输入这些值时:

INSERT INTO `tbl_Tickets` (`Student_Price`, `Adult_Price`, `OAP_Price`, `Tourdate_id`)
VALUES ('£15.00', '£22.00' ,'£13.50', 1);

我得到0,每个价格列。

我应该将我的价格列设置为什么数据类型,以允许英国货币正确适合?

2 个答案:

答案 0 :(得分:2)

您应该使用fixed-point numeric类型来存储任何国籍的货币,例如。 DECIMAL(5, 2),最多可存储999.99的值。

正如spencer7593指出的那样,没有必要对数字位数吝啬,因为DECIMAL type's storage format非常紧凑。

答案 1 :(得分:2)

您绝不能永远不要使用浮点数据类型。 必须始终使用十进制基数,在本例中为DECIMAL( N, 2),其中 N 是值的一个相当高的上限,他们的总和等,如十,或更多,如果你在经营银行。 2是因为你有100便士的英镑,但有时候你可能还需要更多。