Страница 1 из 1

Как можно получить текущее время в Interbase?

Добавлено: 03 ноя 2004, 08:24
Александр
Хочу в триггере делать запись в определенные поля таблицы времени срабатывания триггера и пользователя, выполняющего действие. Как это можно реализовать?

Добавлено: 03 ноя 2004, 08:30
kdv
current_time, current_date, current_timestamp
select cast('today' as date), cast('now' as timestamp) ...

Re: Как можно получить текущее время в Interbase?

Добавлено: 03 ноя 2004, 09:02
Сергей
Для синхронизации времени с сервером использую простую процедуру:

CREATE PROCEDURE SERVER_DATE_TIME
RETURNS (
PSERVER_DATE_TIME DATE)
AS
begin
/* Procedure Text */
PSERVER_DATE_TIME ="NOW";
suspend;
end

Добавлено: 03 ноя 2004, 09:12
kdv
Сергей, на третий диалект так и не перешел? Тогда не советуй людям старый код, с двойными кавычками.

Добавлено: 09 ноя 2004, 16:06
Eduard
Раньше этим интересовался, пришел тогда к выводу (эмпирическому тоже). Если вы таким образом хотите узнать время выполнения процедуры - то в одной транзакции не получится (при начале - dstart = now и dstop=now, это будет одно и тоже время), а второе - точность -секунда, то есть про миллисекунды на стороне FB сервера забудьте.
Хотя много воды утекло - может быть я не прав, и буду этому рад.

Добавлено: 11 ноя 2004, 10:46
dimitr
1. CURRENT_blahblah возвращают время начала выполнения текущего запроса (не транзакции). Т.е. в процедуре это значение всегда будет одно и то же. UPDATE ... SET F = CURRENT_TIME установит все записи в одно и то же значение. 'NOW' всегда возвращает точное время на момент использования.

2. Миллисекунды возвращаются начиная с FB 2.0.