powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Присвоить локальной переменной текущее время db2
4 сообщений из 4, страница 1 из 1
Присвоить локальной переменной текущее время db2
    #38470942
andrik36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Возникла необходимость иметь запрос выдающий текущее время и время следующего запуска программы, которое вычисляется по спец.алгоритму. Имея возможность изменения/добавления в базу задачу я решил созданием таблицы и инсертом в неё текущего времени, а далее селект и т.д. Но нюанс в том что возможности чтото создать/хранить нету - требуется на лету брать текущее время, выполнять с ним алгоритм действий и выдавать результат. Насколько я понимаю мне нужна локальная переменная с присвоенным ей значением текущего времени перед основной частью и далее манипуляция с ней. Мой вопрос: как присвоить переменной текущее время? // Судя по CookBook выглядит так set :host-var = current timestamp, но у меня не получается. Спасибо.
...
Рейтинг: 0 / 0
Присвоить локальной переменной текущее время db2
    #38470964
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrik36,

Добрый день.

Если присвоение переменной происходит в той же процедуре / compound statement, что и ее использование, то:
Код: sql
1.
2.
3.
4.
5.
begin
  declare host_var timestamp;
  set host_var = current timestamp;
  -- логика
end/


Если нет, то используйте GLOBAL VARIABLE .
...
Рейтинг: 0 / 0
Присвоить локальной переменной текущее время db2
    #38471098
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrik36Но нюанс в том что возможности чтото создать/хранить нету - требуется на лету брать текущее время, выполнять с ним алгоритм действий и выдавать результат. ...Если вы вообще не имеете возможности менять БД/запросить какие-то изменения в БД (создание для себя GLOBAL VARIABLE и получение прав на работу с ней), что было бы несколько странно, то храните значение либо у себя в приложении:
Код: sql
1.
VALUES CURRENT TIMESTAMP INTO :host_var;

(так же, кстати, можно присваивать значение и глобальной переменной).

Либо используйте "старые добрые" временные таблицы (по большому счёту глобальные переменные и есть частный случай такой таблицы):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE GLOBAL TEMPORARY TABLE SESSION.APPSTARTTIME (
  START_TIME   TIMESTAMP NOT NULL,
  UNIQUECOL    INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 0)   
) 
 ON COMMIT PRESERVE ROWS
 WITH REPLACE;
CREATE UNIQUE INDEX SESSION.APPSTARTTIME_UN ON SESSION.APPSTARTTIME(UNIQUECOL);
INSERT INTO SESSION.APPSTARTTIME(START_TIME) VALUES CURRENT TIMESTAMP; 

SELECT START_TIME FROM SESSION.APPSTARTTIME;
UPDATE SESSION.APPSTARTTIME
  SET START_TIME = ...;
...
Рейтинг: 0 / 0
Присвоить локальной переменной текущее время db2
    #38472417
andrik36
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, ваши советы помогли. Спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Присвоить локальной переменной текущее время db2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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