Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL数据类型声明中,以十进制(x,y)表示的x和y的边界值是什么?_Mysql_Decimal - Fatal编程技术网

在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张的票吗?从这个例子中,我希望
    L_NUM NUMBER(10,4)的精度高达10位,其中4位可以放在小数点后。
    但情况并非如此()。@gsamaras decumal(10,4)表示数字部分为6,小数部分为4。链接已修复,谢谢。