FirebirdSQL logo

CURRENT_TIMESTAMP

Доступно в

DSQL, PSQL, ESQL

Синтаксис
CURRENT_TIMESTAMP [(<precision>)]

<precision> ::= 0 | 1 | 2 | 3
Table 1. Параметры контекстной переменной CURRENT_TIMESTAMP
Параметр Описание

precision

Точность.Значение по умолчанию 3.Не поддерживается в ESQL.

Тип возвращаемого результата

TIMESTAMP WITH TIME ZONE

Переменная CURRENT_TIMESTAMP возвращает текущую дату и время в часовом поясе сессии, включая информацию о часовом поясе.Точность определяет, сколько учитывать знаков после запятой в долях секунды.Точность по умолчанию равна 3.

Note

В блоке кода PSQL (процедура, триггер, исполняемый блок) значение CURRENT_TIMESTAMP не меняется по мере выполнения.При вызове вложенного кода, значение также не изменится и будет равно значению в коде самого верхнего уровня.Для определения реального времени используйте CAST('NOW' AS TIMESTAMP).

Example 1. Использование переменной CURRENT_TIMESTAMP
SELECT CURRENT_TIMESTAMP(2) FROM RDB$DATABASE;
-- результат будет (например) 02.03.2014 23:35:33.1200 Europe/Moscow

CURRENT_TRANSACTION

Доступно в

DSQL, PSQL

Синтаксис
CURRENT_TRANSACTION
Тип возвращаемого результата

BIGINT

Переменная CURRENT_TRANSACTION содержит уникальный номер текущей транзакции.

Значение `CURRENT_TRANSACTION хранится в странице заголовка базы данных и сбрасывается в 0 после восстановления (или создания базы). Оно увеличивается при старте новой транзакции.

Example 1. Использование переменной CURRENT_TRANSACTION
SELECT CURRENT_TRANSACTION FROM RDB$DATABASE;

NEW.TRANS_ID = CURRENT_TRANSACTION;

docnext count = 3

CURRENT_USER

Доступно в

DSQL, PSQL

Синтаксис
CURRENT_USER
Тип возвращаемого результата

VARCHAR(63)

Переменная CURRENT_USER содержит имя текущего подключенного пользователя базы данных.

Example 1. Использование переменной CURRENT_USER
NEW.ADDED_BY = CURRENT_USER;

DELETING

Доступно в

PSQL

Синтаксис
DELETING
Тип возвращаемого результата

BOOLEAN

Контекстная переменная DELETING доступна только в коде табличных триггеров.Используется в триггерах на несколько типов событий и показывает, что триггер сработал при выполнении операции DELETE.

Example 1. Использование переменной DELETING
...
IF (DELETING) THEN
BEGIN
  INSERT INTO REMOVED_CARS (
    ID, MAKE, MODEL, REMOVED)
  VALUES (
    OLD.ID, OLD.MAKE, OLD.MODEL, CURRENT_TIMESTAMP);
END
...

GDSCODE

Доступно в

PSQL

Синтаксис
GDSCODE
Тип возвращаемого результата

INTEGER

В блоке обработки ошибок WHEN …​ DO контекстная переменная GDSCODE содержит числовое представление текущего кода ошибки Firebird.До версии Firebird 2.0 GDSCODE можно было получить только с использованием конструкции WHEN GDSCODE.Теперь эту контекстную переменную можно также использовать в блоках WHEN ANY, WHEN SQLCODE и WHEN EXCEPTION при условии, что код ошибки соответствует коду ошибки Firebird.Вне обработчика ошибок GDSCODE всегда равен 0.Вне PSQL GDSCODE не существует вообще.

Example 1. Использование переменной GDSCODE
...
WHEN GDSCODE GRANT_OBJ_NOTFOUND,
     GDSCODE GRANT_FLD_NOTFOUND,
     GDSCODE GRANT_NOPRIV,
     GDSCODE GRANT_NOPRIV_ON_BASE
DO
BEGIN
  EXECUTE PROCEDURE LOG_GRANT_ERROR(GDSCODE);
  EXIT;
END
...
Note

Обратите внимание, пожалуйста: после, WHEN GDSCODE вы должны использовать символьные имена — такие, как grant_obj_notfound и т.д.Но контекстная переменная GDSCODE — целое число.Для сравнения его с определённой ошибкой вы должны использовать числовое значение, например, 335544551 для grant_obj_notfound.