![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
InterBase [D6, IB5.x]
fantomas © (2003-12-04 12:16:00)
Такой вопрос:
Есть база InterBase 5.6. В ней триггер, который BEFORE INSERT в одну из таблиц должен сделать опять же INSERT в другую таблицу. В этой таблице есть поле типа DATE. Туда мне надо вставить значение "NOW" + одна секунда. Как это сделать?
Спасибо.
Vemer (2003-12-04 16:28:00) [1]
А если так:
IB хранит время в Date в дробной части.
Сделай 2 записи с разницей в 1 секунду, переведи их значения во что-то типа float, вычти одну из другой - получишь число Х, примерно равное секунде в понимании IBase. Потом прибавляй это число куда надо.
Sandman25 (2003-12-04 15:56:00) [2]
[3] Johnmen © (04.12.03 14:29)
1сек - это нечто, соответсвующее 1 секунде.
Для Informix данный запрос выглядел бы так:
select current + interval(1) second to second from table
Если в IB нет подобной функции для работы с интервалами, я очень извиняюсь.
Johnmen (2003-12-04 14:29:00) [3]
>Sandman25 © (04.12.03 13:28)
А что такое 1сек?
:)
Sandman25 (2003-12-04 13:28:00) [4]
Я думаю, можно сделать и без UDF.
INSERT INTO Другая_Таблица(Поле_DATE) SELECT NOW + 1сек FROM таблица_с_одной_записью
Digitman (2003-12-04 13:25:00) [5]
INSERT INTO Другая_Таблица(Поле_DATE) VALUES (UDF_NOW_Plus1_Sec(NOW))
где UDF_NOW_Plus1_Sec - твоя собственная UDF, получающая параметром значение типа DATE и возвращающая значение того же типа, равное вх.параметру + 1 сек