Найти тему

Функция CURRENT

Функция CURRENT является одной из наиболее часто используемых функций в различных СУБД. Она предоставляет возможность получить текущую дату и время, а также, в некоторых случаях, временную зону или часовой пояс.

В СУБД SoQoL (https://soqol.ru/) данная функция используется для получения текущего значения:

- даты и времени (CURRENT_DATE и CURRENT_TIMESTAMP);
- имени БД (CURRENT_DBNAME);
- имени пользователя БД (CURRENT_USER);
- имени схемы по умолчанию текущего пользователя (CURRENT_SCHEMA);
- уровня изоляции транзакции (CURRENT_ISOLATION_LEVEL).

Эти функции могут быть полезными, когда нужно работать с текущими значениями в запросах или выражениях.

Например:

В таблице продаж номер сделки заполняется значениями из генератора последовательности, а имя продавца и дату необходимо вносить актуальные на момент сделки:

create table SALE (NUMBER bigint DEFAULT NUMSEQ.nextval primary key, SELLER varchar (50), DATE date);

В этом случае запрос с функциями CURRENT добавит в таблицу текущие имя пользователя БД (продавца) и дату соответственно:

insert into SALE (SELLER, DATE) values (current_user, current_date) returning NUMBER, SELLER, DATE;

NUMBER | SELLER | DATE

-----------+------------+--------------------------

1 | IvanovaDS | 2023-07-26 09:00:43

В Oracle, PostgreSQL, MySQL также есть функции, возвращающие текущие значения дат, времени и т.д., которые могут отличаться названием.

Например, в MS SQL Server текущую дату вернёт функция GETDATE. Для получения текущего значения даты в конкретном часовом поясе необходимо вместо GETDATE использовать CURRENT_TIMESTAMP с функцией AT TIME ZONE.

В Oracle, PostgreSQL функция с приставкой LOCAL вместо CURRENT возвращает текущие дату и время в часовом поясе сеанса.

Больше информации о СУБД SoQoL на нашем канале https://t.me/soqol_dbms