powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / timestamp 'NOW' и current_timestamp
6 сообщений из 6, страница 1 из 1
timestamp 'NOW' и current_timestamp
    #39690043
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
timestamp 'NOW' и current_timestamp
    #39690046
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timestamp 'NOW' - литерал, он вычисляется однократно при компиляции процедуры.
current_timestamp - стабильная константа, она вычисляется однократно при старте запроса
(или первом обращении, уже не помню).
cast('NOW' as timestamp) - нестабильное выражение, вычисляется каждый раз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
timestamp 'NOW' и current_timestamp
    #39690055
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

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

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

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

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

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

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

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


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