Константы даты и времени
Таблица 3.23. Константы даты и времени
Константа |
Описание |
current |
Текущее (отложенное) время обработки транзакции. В отличие от now не привязывается к конкретному моменту времени и возвращает текущее системное время |
epoch infinity |
1970-01-01 00:00:00+00 («день рождения» Unix) |
-infinity |
Абстрактная константа, более «ранняя» по сравнению со всеми допустимыми значениями даты и времени |
now |
Фиксированное время обработки транзакции |
today |
Полночь текущего дня |
tomorrow |
Полночь следующего дня |
yesterday |
Полночь предыдущего дня |
В PostgreSQL также поддерживаются три встроенные функции для получения текущего времени, даты и их комбинации. Для них были выбраны подходящие имена current_date, current_time и current_timestamp.
Если судить только по именам, константы now и current на первый взгляд кажутся идентичными. В действительности они принципиально различаются по способу хранения в таблице. Константа now транслируется в системное время на момент выполнения команды (например, время вставки, если константа используется в команде INSERT). С другой стороны, константа current обычно применяется в особых случаях (например, при отслеживании сведений о процессах) для вычисления разности между начальным временем, зафиксированным константой now, и текущим временем; результат определяет время выполнения процесса. В листинге 3.28 константы now и current используются для построения журнала задач. Первая команда создает таблицу с полями для хранения имени задачи, начальной и конечной даты/времени. В таблице создаются записи двух задач, при этом начальное время задается константой now, а конечное время — константой current. Из листинга видно, что обе задачи не завершены.
ВМИМАНИЕ
Константы даты/времени, как показано в листинге 3.28, обязательно заключаются в апострофы.