powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение даты в хранимой процедуре
9 сообщений из 9, страница 1 из 1
Изменение даты в хранимой процедуре
    #32218330
gray_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть переменная типа TIMESTAMP. Как в ХП присвоить другой переменной такого же типа дату первой переменной, а время к примеру 9:00;
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218353
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вот к примеру так:
Код: plaintext
1.
   DT = '01/01/2003' ||' '|| '09:00';
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218360
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё так

create procedure SP_DATE(
dt_in timestamp
) returns (
dt_out timestamp
) as
begin
...
...
...
dt_out = cast((cast(cast(:dt_in as date) as varchar(31)) || ' 09:00') as timestamp);
suspend;
end

Например dt_in равен 25.07.2003 10:30:00
тогда dt_out будет 25.07.2003 09:00:00
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218377
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так

AS
declare variable tmp time ;
begin
tmp = '09:00';
dt_out = cast(:dt_in as date) + :tmp;

suspend;
end

Протестировал оба варианта на IB 6.5 работают оба.
Первый вариант придумал на вскидку, второй - немного подумав.
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218394
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текущая дата + 9 часов

dt = current_date ||' '|| '09:00';
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218463
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico! current_date это если не ошибаюсь date .
А ему надо в общем виде из какого-то любого timestamp выцепить date и обнулить time , затем прицепить новый time и соответственно получить новый timestamp .
Так я понял поставленную задачу.
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218484
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну скорее всего именно так.

Единственное замечание

dt_out = cast(:dt_in as date) + :tmp;

Не будет работать - надо обязательно || и перед временем пробел добавлять.
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218502
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Не будет работать - надо обязательно || и перед временем пробел добавлять.

Я понимаю, что выглядит весьма экстравагантно.
Но перед тем как опубликовать в конференции я проверил в IBExpert.
Сработало чёрт возьми и без пробела. А вот в первом варианте где через varchar пробел действительно нужен и он там есть перед 09. Т.е. || '_09'
...
Рейтинг: 0 / 0
Изменение даты в хранимой процедуре
    #32218510
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробел был бы нужен если переменная : tmp была бы обьявлена varchar , а я её обьявил как time . А вот присваиваю ей строку.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение даты в хранимой процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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