В теме все сказано.Я пытаюсь творить магию через функцию, которая превращает второе целое число в строку «DD: HH: MM: SS».
Snip
input: 278543
output: "3D 5H 22M 23S"
Что бы я хотел сделать, более изящно, если это возможно, это заполнить числа (чтобы 5M показывал как 05M) и выровнять их по правому краювместо этого «3D 5H 22M 23S» - это «3D 5H 22M 23S».
edit: последний фрагмент, который, кажется, работает.Хотелось бы иметь его красивее, но, насколько я могу судить, это определенно работает:
CREATE FUNCTION DHMS(secondsElapsed INT)
RETURNS Char(20)
LANGUAGE SQL
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN
DECLARE Dy Integer;
DECLARE Hr Integer;
DECLARE Mn Integer;
DECLARE Sc Integer;
SET Dy = Cast( secondsElapsed / 86400 as Int);
SET Hr = Cast(MOD( secondsElapsed, 86400 ) / 3600 as Int);
SET Mn = Cast(MOD( secondsElapsed, 3600 ) / 60 as Int);
SET Sc = Cast(MOD( secondsElapsed, 60 ) as Int);
RETURN REPEAT(' ',6-LENGTH(RTRIM(CAST(Dy AS CHAR(6))))) || Dy || 'D '
|| REPEAT('0',2-LENGTH(RTRIM(CAST(Hr AS CHAR(6))))) || Hr || 'H '
|| REPEAT('0',2-LENGTH(RTRIM(CAST(Mn AS CHAR(6))))) || Mn || 'M '
|| REPEAT('0',2-LENGTH(RTRIM(CAST(Sc AS CHAR(6))))) || Sc || 'S';
END