интервал между проблемой systimestamp (oracle) - PullRequest
0 голосов
/ 24 января 2020

У меня есть процедура TTT.

v_start_date     TIMESTAMP;
v_delta_interval interval day to second;
begin
 v_start_date := SYSTIMESTAMP;
 /* some code */
 v_delta_interval := SYSTIMESTAMP - v_start_date;
 insert into tmp_log_table
  values (v_start_date, v_delta_interval, SYSTIMESTAMP);
end;

Проблема связана с интервалом между systimestamp ( v_delta_interval ). Если задание запускает процедуру - все нормально, но если пользователь запускает ее - иногда она рассчитывается как +4 часа. Моя таблица журнала:

create table tmp_log_table
(
  t_v_start_date     TIMESTAMP(6),
  t_v_delta_interval INTERVAL DAY(2) TO SECOND(6),
  t_timestamp_log    TIMESTAMP(6)
);

и иногда у меня есть такие значения в tmp_log_table:

SQL> select cast(t_timestamp_log - t_v_start_date as INTERVAL DAY(2) TO SECOND(6)) as CLC_INTERVAL,
            T_V_DELTA_INTERVAL,
            t_timestamp_log,
            T_V_START_DATE
       from tmp_log_table t;

CLC_INTERVAL                            T_V_DELTA_INTERVAL                      T_TIMESTAMP_LOG                                   T_V_START_DATE
--------------------------------------- --------------------------------------- ------------------------------------------------- -------------------------------------------------
+00 00:00:31.897890                     +00 04:00:31.895883                     20-JAN-20 11.30.28.825271 AM                      20-JAN-20 11.29.56.927381 AM
+00 00:00:46.392905                     +00 04:00:46.382724                     21-JAN-20 09.14.28.866425 AM                      21-JAN-20 09.13.42.473520 AM

Почему у меня разница в значениях процедуры +4 часа?

...