当我尝试运行此代码时:
DELIMITER $$
create function formatJJhhMMssToSuffixes(duree varchar(100))
returns varchar(100)
begin
DECLARE
hhmmss VARCHAR(100);
if duree = '' then
return '';
else if cast(substring_index(duree, ':', 1) as int) = 0 then
set hhmmss = substring_index(duree, ':', -3);
return concat(substring_index(hhmmss, ':', 1), 'h ', substring(hhmmss, 4, 2), 'm ', substring_index(hhmmss, ':', -1), 's');
else
return concat(substring_index(duree, ':', 1), 'jours ', substring(duree, 4, 2), 'h ', substring(duree, 7, 2), 'm ', substring_index(duree, ':', -1), 's');
end IF;
end $$
DELIMITER ;
然后我收到错误消息:
[SQL]
create function formatJJhhMMssToSuffixes(duree varchar(100))
returns varchar(100)
begin
DECLARE
hhmmss VARCHAR(100);
if duree = '' then
return '';
else if cast(substring_index(duree, ':', 1) as int) = 0 then
set hhmmss = substring_index(duree, ':', -3);
return concat(substring_index(hhmmss, ':', 1), 'h ', substring(hhmmss, 4, 2), 'm ', substring_index(hhmmss, ':', -1), 's');
else
return concat(substring_index(duree, ':', 1), 'jours ', substring(duree, 4, 2), 'h ', substring(duree, 7, 2), 'm ', substring_index(duree, ':', -1), 's');
end IF;
end $$
DELIMITER ;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int) = 0 then
set hhmmss = substring_index(duree, ':', -3);
re' at line 5
我的代码有什么问题?
[CAST
使用者有选项INT
,请尝试SIGNED
,]]
在此处查找各种CAST
选项https://www.w3schools.com/sql/func_mysql_cast.asp
编辑了您的代码,请尝试此
create function formatJJhhMMssToSuffixes(duree varchar(100))
returns varchar(100)
begin
DECLARE
hhmmss VARCHAR(100);
if duree = '' then
return '';
else if cast(substring_index(duree, ':', 1) as signed) = 0 then
set hhmmss = substring_index(duree, ':', -3);
return concat(substring_index(hhmmss, ':', 1), 'h ', substring(hhmmss, 4, 2), 'm ', substring_index(hhmmss, ':', -1), 's');
else
return concat(substring_index(duree, ':', 1), 'jours ', substring(duree, 4, 2), 'h ', substring(duree, 7, 2), 'm ', substring_index(duree, ':', -1), 's');
end IF;
end $$