Полное руководство по выводу даты в PostgreSQL — форматы, функции и примеры

В PostgreSQL существует несколько типов данных, связанных с датой и временем, таких как «date», «timestamp» и «interval». Каждый из них имеет свои особенности и предназначен для разного рода операций.

SELECT to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS');

В этом примере мы использовали функцию «current_timestamp», которая возвращает текущую дату и время, и указали шаблон форматирования «YYYY-MM-DD HH24:MI:SS», где «YYYY» — год, «MM» — месяц, «DD» — день, «HH» — часы, «MI» — минуты и «SS» — секунды.

Как вывести дату в PostgreSQL: подробное руководство

1. Функция TO_CHAR():

  • Пример использования:
  • SELECT TO_CHAR(NOW(), 'DD-MM-YYYY');

  • Результат:
  • 22-03-2022

2. Функция EXTRACT():

  • Пример использования:
  • SELECT EXTRACT(YEAR FROM NOW());

  • Результат:
  • 2022

3. Функция DATE_TRUNC():

  • Пример использования:
  • SELECT DATE_TRUNC('month', NOW());

  • Результат:
  • 2022-03-01 00:00:00

4. Функция TO_TIMESTAMP():

  • Пример использования:
  • SELECT TO_TIMESTAMP('22-03-2022', 'DD-MM-YYYY');

  • Результат:
  • 2022-03-22 00:00:00

5. Ключевое слово CURRENT_DATE:

  • Пример использования:
  • SELECT CURRENT_DATE;

  • Результат:
  • 2022-03-22

6. Ключевое слово CURRENT_TIMESTAMP:

  • Пример использования:
  • SELECT CURRENT_TIMESTAMP;

  • Результат:
  • 2022-03-22 10:30:00

ПараметрОписание
timestampДата и время
format
ФорматРезультат
YYYY-MM-DD2022-01-01
DD.MM.YYYY01.01.2022
Day, DD Month YYYYSaturday, 01 January 2022
СимволОписание
YYYYГод, четыре цифры
YYГод, две цифры
MMМесяц, две цифры
MonthНазвание месяца
DDДень, две цифры
DayНазвание дня недели
HHЧас, две цифры
MIМинута, две цифры
SSСекунда, две цифры
SELECT to_char('2022-01-01 12:34:56'::timestamp, 'YYYY-MM-DD HH:MI:SS');

Результат выполнения запроса:

2022-01-01 12:34:56

SELECT NOW();

Этот запрос вернет результат в следующем формате:

now
-------------------------------
2021-09-15 10:30:45.587827+00
(1 row)

Как видно из примера, результатом запроса будет текущая дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС. Учитывается также временная зона.

Если необходимо вывести только дату без времени, можно воспользоваться функцией DATE():

SELECT DATE(NOW());

Этот запрос вернет только текущую дату в формате ГГГГ-ММ-ДД:

date
------------
2019-12-23
(1 row)

Таким образом, с помощью функций NOW() и DATE() можно достаточно просто получить текущую дату в PostgreSQL.

Обратите внимание, что результат функции NOW() зависит от текущих настроек временной зоны на сервере PostgreSQL.

Вот пример использования функции TO_CHAR:

    Функция TO_CHAR принимает два параметра: значение, которое нужно преобразовать (например, текущая дата) и формат, в котором нужно вывести значение.

    Поддерживаются различные символы форматирования, такие как:

    • YYYY — год с четырьмя цифрами (например, 2022).
    • MM — месяц с двумя цифрами (например, 01).
    • DD — день с двумя цифрами (например, 01).
    • HH24 — часы в 24-часовом формате с двумя цифрами (например, 07).
    • MI — минуты с двумя цифрами (например, 30).
    • SS — секунды с двумя цифрами (например, 45).

    Вы можете комбинировать символы форматирования по своему усмотрению, чтобы получить нужный вам формат даты.

    В PostgreSQL дата представляется типом данных «date». Чтобы вывести дату из определенного столбца в PostgreSQL, можно использовать оператор SELECT с указанием имени столбца в таблице.

    Например, предположим, что у нас есть таблица «employees» с столбцом «birth_date», содержащим дату рождения сотрудников. Чтобы вывести все даты рождения из этого столбца, можно использовать следующий запрос:

    SELECT birth_date FROM employees;

    Этот запрос вернет все значения из столбца «birth_date» в таблице «employees».

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

    SELECT DISTINCT birth_date FROM employees;

    Этот запрос вернет только уникальные значения из столбца «birth_date» в таблице «employees».

    SELECT TO_CHAR(birth_date, 'DD.MM.YYYY') FROM employees;

    Этот запрос вернет дату рождения в формате «DD.MM.YYYY» для всех записей в таблице «employees».

    Используя вышеуказанные инструкции, вы сможете легко вывести даты из определенного столбца в PostgreSQL и форматировать их по своему усмотрению.

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

    Функция to_char()

    Функция to_char() позволяет форматировать дату по заданному шаблону. Например, чтобы вывести дату в формате «ГГГГ-ММ-ДД», можно использовать следующий запрос:

    SELECT to_char(current_date, ‘YYYY-MM-DD’);

    Этот запрос вернет текущую дату в формате «ГГГГ-ММ-ДД». Можно использовать различные шаблоны для форматирования даты так, как вам нужно.

    Функция extract()

    Функция extract() позволяет извлечь конкретные части даты, такие как год, месяц или день. Например, чтобы вывести только месяц текущей даты, можно использовать следующий запрос:

    SELECT extract(month from current_date);

    Этот запрос вернет только месяц текущей даты.

    Функция date_part()

    Функция date_part() аналогична функции extract() и позволяет извлекать конкретные части даты. Например, чтобы вывести только день недели текущей даты, можно использовать следующий запрос:

    SELECT date_part(‘dow’, current_date);

    Этот запрос вернет номер дня недели текущей даты, где 0 — воскресенье, 1 — понедельник и т.д.

    Функция age()

    Функция age() позволяет вычислять разницу между двумя датами. Например, чтобы вычислить возраст человека на основе его даты рождения, можно использовать следующий запрос:

    SELECT age(date ‘1990-01-01’);

    Этот запрос вернет разницу между текущей датой и датой 1990-01-01 в формате «ГГГГ-ММ-ДД».

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

    Преобразование даты в строку в PostgreSQL

    В PostgreSQL есть несколько функций, которые позволяют преобразовывать дату в строку. Ниже приведены некоторые из них:

    • TO_CHAR(date, 'format') — эта функция позволяет преобразовать дату в строку с помощью заданного формата. Например, чтобы преобразовать дату в формате ‘гггг-мм-дд’ в строку в формате ‘дд.мм.гггг’, вы можете использовать следующий запрос: SELECT TO_CHAR(date_column, 'DD.MM.YYYY') FROM table_name;
    • TO_CHAR(date, 'style') — эта функция позволяет использовать заранее определенные стили форматирования даты. Например, чтобы преобразовать дату в строку в формате ‘DD/MM/YYYY’, вы можете использовать следующий запрос: SELECT TO_CHAR(date_column, 'YYYY/MM/DD') FROM table_name;
    • TO_CHAR(date, 'FM') — эта функция позволяет убрать ведущие нули из преобразованной строки. Например, чтобы преобразовать дату в строку в формате ‘гггг-мм-дд’ без ведущих нулей, вы можете использовать следующий запрос: SELECT TO_CHAR(date_column, 'FMYYYY-FMMM-FMDD') FROM table_name;
    SELECT date_column AT TIME ZONE 'timezone' FROM table_name;

    Где date_column — название столбца с датой, timezone — название желаемой временной зоны.

    SELECT created_at AT TIME ZONE 'Asia/Tokyo' FROM orders;

    Этот запрос выведет дату из столбца «created_at» таблицы «orders» с добавленной временной зоной «Asia/Tokyo».

    Результат запроса будет представлен в формате даты со временной зоной.

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

    Оцените статью