将小数点后的数字存储到MySQL中的变量中
假设我现在想把76点之后的数字存储到一个变量中。我该怎么做? 我将在下面给出一个场景将小数点后的数字存储到MySQL中的变量中,mysql,database,triggers,decimal,point,Mysql,Database,Triggers,Decimal,Point,假设我现在想把76点之后的数字存储到一个变量中。我该怎么做? 我将在下面给出一个场景 declare x (3,2); set x = 323.76; declare y int; select cast(substring_index(x, '.', -1) as unsigned) into y; 任何帮助都将不胜感激 作为过程或函数和触发器,只需稍加修改即可使用代码 DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `man
declare x (3,2);
set x = 323.76;
declare y int;
select cast(substring_index(x, '.', -1) as unsigned) into y;
任何帮助都将不胜感激 作为过程或函数和触发器,只需稍加修改即可使用代码
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mantisse`()
BEGIN
declare x DECIMAL(8,2);
declare y int;
set x = 323.76;
select cast(substring_index(x, '.', -1) as unsigned) into y;
INSERT INTO mytable VALUE (y);
END$$
DELIMITER ;
或者,如果要在查询中使用它,可以使用用户定义的变量
set @x = 323.96;
select cast(substring_index(@x, '.', -1) as unsigned) into @y;
INSERT INTO mytable VALUE (@y);
您有一个alreadya字符串,所以使用SUBSTRING获得9
set @x = 323.96;
select cast(SUBSTRING(substring_index(@x, '.', -1),1,1) as unsigned) into @y;
SELECT @y;
INSERT INTO mytable VALUE (@y);
当然,这在程序中也起作用,作为过程或查找和触发器,您只需稍加修改即可使用代码
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mantisse`()
BEGIN
declare x DECIMAL(8,2);
declare y int;
set x = 323.76;
select cast(substring_index(x, '.', -1) as unsigned) into y;
INSERT INTO mytable VALUE (y);
END$$
DELIMITER ;
或者,如果要在查询中使用它,可以使用用户定义的变量
set @x = 323.96;
select cast(substring_index(@x, '.', -1) as unsigned) into @y;
INSERT INTO mytable VALUE (@y);
您有一个alreadya字符串,所以使用SUBSTRING获得9
set @x = 323.96;
select cast(SUBSTRING(substring_index(@x, '.', -1),1,1) as unsigned) into @y;
SELECT @y;
INSERT INTO mytable VALUE (@y);
当然,这在程序中也起作用您可以使用MOD函数轻松地从数字中获取小数: 设置@num=323.76; 设置@小数=MOD@num, 1 * 100; 选择@小数;-76
除以1,您可以使用MOD函数得到余数,即0.76,然后只需将其乘以100。您可以使用MOD函数轻松地从数字中获得小数: 设置@num=323.76; 设置@小数=MOD@num, 1 * 100; 选择@小数;-76
除以1,你可以用MOD函数得到余数,即0.76,然后你只需要将它乘以100。如果我理解这个规范,这看起来很奇怪。我会使用substring_index函数来删除之前的所有内容,包括点。但是如果我理解规范,我会做数学运算来得到一个值v,0,这看起来很奇怪。我会使用substring_index函数来删除之前的所有内容,包括点。但我会计算得出一个值V,0,如果我想只考虑点之后的第一个数字,那该怎么办?触发器示例7和查询示例9中的哪个位置?你能帮助NBK吗?感谢NBK的帮助:非常感谢。如果我只想考虑点之后的第一个数字呢?触发器示例7和查询示例9中的哪个位置?你能帮助nbk吗?谢谢你的帮助nbk:非常感谢。非常感谢你的回复,但我不想要十进制的。我想要整数。非常感谢您的回复,但我不想要小数。我想要整数。3,2不够大。需要5,2。第一个数字是总位数。3,2不够大。需要5,2。第一个数字是总位数。