Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / timestamp 'NOW' и current_timestamp / 6 сообщений из 6, страница 1 из 1
19.08.2018, 18:29
    #39690043
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
WI-V6.3.6.27020 Firebird 2.5

Процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure T
returns (
  Time_Current    timestamp,
  Time_NOW    timestamp
)
as
begin
  Time_Current = current_timestamp;
  Time_NOW = timestamp 'NOW';

  suspend;
end



Запускаю и выдает мне

Код: plaintext
1.
TIME_CURRENT	        TIME_NOW
19.08.2018 18:14:59.643	19.08.2018 18:14:56.739

Разница в минус три секунды
Откуда?

Собственно, оно мне и не очень однако возникла другая проблема

Процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create procedure TS
returns (
  Start_Time    timestamp,
  Stop_Time    timestamp,
  All_Time  numeric(15,6)
)
as
begin
  Start_Time = current_timestamp;

-- Здесь тело процедуры которое выполняется секунд пять, ну по крайней мере так говорит IBEXPERT
  Stop_Time = timestamp 'NOW';

  All_Time = (Stop_Time - Start_Time) * 24 * 60 * 60;
  suspend;
end


И в результате получаю что время выполнения миллисекунды
замена
Код: sql
1.
Start_Time = current_timestamp;


на
Код: sql
1.
Start_Time = timestamp 'NOW';


не помогла, я впал в ступор, в общем нужен пинок в правильном направлении
...
Рейтинг: 0 / 0
19.08.2018, 18:54
    #39690046
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
timestamp 'NOW' - литерал, он вычисляется однократно при компиляции процедуры.
current_timestamp - стабильная константа, она вычисляется однократно при старте запроса
(или первом обращении, уже не помню).
cast('NOW' as timestamp) - нестабильное выражение, вычисляется каждый раз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.08.2018, 19:40
    #39690055
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
Dimitry Sibiryakov,

Спасибо!!!!!!!
...
Рейтинг: 0 / 0
19.08.2018, 20:32
    #39690076
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
Всё не так. Всё ещё хуже! (с)

m7mРазница в минус три секунды
Откуда?Собсно, про литерал уже подсказали. Ибо нефиг так писать, пиши просто 'now',
без указания типа (timestamp), сервер сам сделает приведение типов, если нужно.

m7mСобственно, оно мне и не очень однако возникла другая проблемаДругая - какая? Просто 'now' чем конкретно не устраивает?

P.S. current_timestamp - на момент старта запроса, а не первого обращения; причём на момент
старта "клиентского стейтмента" (не знаю как правильнее выразиться), а не "PSQL-контекста".
...
Рейтинг: 0 / 0
19.08.2018, 21:08
    #39690091
m7m
m7m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
Гаджимурадов РустамСобсно, про литерал уже подсказали. Ибо нефиг так писать, пиши просто 'now',
без указания типа (timestamp), сервер сам сделает приведение типов, если нужно.
Ну таки да, так и писал, но сегодня чего-то переклинило :(

Гаджимурадов РустамДругая - какая?
Ну вроде в сообщении все написал
"И в результате получаю что время выполнения миллисекунды"

Гаджимурадов РустамПросто 'now' чем конкретно не устраивает?

Всем устраивает
...
Рейтинг: 0 / 0
20.08.2018, 10:26
    #39690262
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
timestamp 'NOW' и current_timestamp
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / timestamp 'NOW' и current_timestamp / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]