Для решения проблемы. Есть два значения Время: 12:20 и 23:55. Как добавить значения, которые были на выходе, были 36:15.операции с времён пожаротушения
Или как сохранить эти значения в дБ (время), кроме этого, возможно ли это дополнение?
Для решения проблемы. Есть два значения Время: 12:20 и 23:55. Как добавить значения, которые были на выходе, были 36:15.операции с времён пожаротушения
Или как сохранить эти значения в дБ (время), кроме этого, возможно ли это дополнение?
Тип данных Firebird TIME позволяет варьироваться только между 00:00:00 и 24:00:00.
Если вы хотите сохранить произвольное количество времени (например, в секундах), используйте INTEGER или NUMERIC тип данных. Затем при необходимости преобразуйте его в формат строки времени.
Это звучит вполне разумно для меня: тип TIME [_OF_DAY] не совпадает с типом DURATION. – Shark8
Вы можете использовать TIMESTAMP in dialect 3
С этим вы можете добавить 2 раза.
У меня есть код здесь преобразовать секунды в целом
CREATE PROCEDURE P_CONVERT_TIME (
V_TIME_INT INTEGER
)
RETURNS (
V_TIME_STR VARCHAR(20)
)
AS
DECLARE VARIABLE v_max_trans_hour integer;
DECLARE VARIABLE v_max_trans_min integer;
DECLARE VARIABLE v_max_trans_sec integer;
DECLARE VARIABLE v_max_trans_sec_gross integer;
BEGIN
v_max_trans_sec = cast(v_Time_Int as integer);
v_max_trans_hour = coalesce(div(v_max_trans_sec, 3600), 0);
if (v_max_trans_hour > 0) then
v_max_trans_sec = v_max_trans_sec - (3600 * v_max_trans_hour);
v_max_trans_min = coalesce(div(v_max_trans_sec, 60), 0);
if (v_max_trans_min > 0) then
v_max_trans_sec = v_max_trans_sec - (60 * v_max_trans_min);
if (v_max_trans_hour > 0) then begin
if (v_max_trans_hour < 10) then begin
V_Time_Str ='0'||v_max_trans_hour||':'; end else
V_Time_Str=v_max_trans_hour||':';
end else V_Time_Str='00:';
if (v_max_trans_min > 0) then begin
if (v_max_trans_min <10) then begin
V_Time_Str =V_Time_Str ||'0'||v_max_trans_min||':'; end else
V_Time_Str =V_Time_Str ||v_max_trans_min||':';
end else V_Time_Str =V_Time_Str ||'00:';
if (v_max_trans_sec > 0) then begin
if (v_max_trans_sec <10) then begin
V_Time_Str =V_Time_Str ||'0'|| v_max_trans_sec; end else
V_Time_Str =V_Time_Str || v_max_trans_sec;
end else V_Time_Str =V_Time_Str ||'00';
suspend;
END
;
Правильно ли я, что вы хотите добавить два раза понять, и результат должен быть другое * Действительно * время? –