在MySQL数据类型声明中,以十进制(x,y)表示的x和y的边界值是什么?
我有以下的自定义项在MySQL数据类型声明中,以十进制(x,y)表示的x和y的边界值是什么?,mysql,decimal,Mysql,Decimal,我有以下的自定义项 drop function if exists getCurrency$$ create function getCurrency(dt datetime, x decimal(19,4), y decimal(19, 4)) returns decimal(10,4) reads sql data begin declare currencyval decimal(10,4); /* Some conditions */ select c
drop function if exists getCurrency$$
create function getCurrency(dt datetime, x decimal(19,4), y decimal(19, 4))
returns decimal(10,4) reads sql data
begin
declare currencyval decimal(10,4);
/* Some conditions */
select case when dt = "2000-12-31" then 0 else round((x/y), 4) into currencyval;
return currencyval;
end$$
有时此UDF会引发数据截断错误。
我可以解决这个问题,但在这之前,我需要一些关于十进制数据类型和参数中10,4的重要性的信息
若你们能给出一些边界条件的例子就好了。
10,4
表示点前6位(整数部分),点后4位(小数部分)
因此,您可以返回的最大可能数字是999999.9999
在您的特定情况下,无法说出x
和/或y
的边界值,但您可以检查返回值(currencyval
)是否超出-9999999.9999。。999999.9999
范围
顺便说一句,如果您在询问DECIMAL(x,y)
记录中的x
和y
,那么:
x=1..65
y=0..30&&y此链接已失效,但答案仍在这里。还有10张6张的票吗?从这个例子中,我希望
但情况并非如此()。@gsamaras decumal(10,4)表示数字部分为6,小数部分为4。链接已修复,谢谢。L_NUM NUMBER(10,4)的精度高达10位,其中4位可以放在小数点后。