Работа с TO_CHAR()
Независимо от того, хотите ли вы получить текущую дату в своем запросе PostgreSQL или работать с датами в таблице, важно понимать, как преобразовать дату в строку. Возможно, вам нужен более красивый формат даты в качестве вывода или извлечь часть даты после преобразования ее в строку. В любом случае, TO_CHAR() — идеальная функция.
Кроме того, TO_CHAR() предлагает множество вариантов форматирования, которые вы можете использовать. Вы можете комбинировать различные варианты для получения желаемого результата.
TO_CHAR() использует следующий синтаксис:
TO_CHAR(выражение, формат);
Выражение представляет собой временную метку, которую вы хотите преобразовать в указанный формат.
Ниже приведены наиболее часто используемые форматы TO_CHAR():
1 год
ГГГГ – Он показывает год в 4-х цифрах.
Й,ГГГ – Для обозначения четырех цифр года используется запятая.
ГГГ – Он показывает только последние три цифры указанного года.
ГГ – Он показывает только две последние цифры указанного года.
И - Он показывает только последнюю цифру указанного года.
2 месяца
МЕСЯЦ - В названии месяца используются заглавные буквы.
месяц - В названии месяца используются строчные буквы.
МОЙ - Он сокращает месяц в верхнем регистре.
Мой - Он сокращает месяц и пишет его с заглавной буквы.
ММ – Он показывает только номер месяца.
3 дня
ДЕНЬ - Название дня в верхнем регистре.
день - Название дня в нижнем регистре.
ТЫ - Он сокращает название дня и пишет его с заглавной буквы.
Те - Он сокращает и пишет название дня с заглавной буквы.
ты- Сокращенное название дня в нижнем регистре.
4. Время
ХХ – Час дня
HH12 – 12-часовой формат
ЧЧ24 – 24-часовой формат
МОЙ - Минуты
SS - Секунды
Данные форматы — не единственные форматы TO_CHAR(), которые вы можете использовать, но они являются наиболее часто используемыми. В этом посте мы приведем пример их использования.
Пример 1. Преобразование даты в строку
В этом примере мы вводим целевую дату в качестве выражения и указываем, в каком формате ее преобразовать. Следующий вывод показывает, как мы преобразуем «2023-11-29» в более читаемую и понятную строку:
Пример 2: Работа с текущей датой
В PostgreSQL CURRENT_DATE дает вам дату этого конкретного дня.
Предположим, мы хотим преобразовать его в строку. Нам нужно только использовать CURRENT_DATE в качестве выражения, а затем указать формат. Теперь вы получите текущую дату в виде строки.
Тем не менее, вы можете изменить формат на другой, чтобы достичь своей цели. Например, если мы хотим отображать только дату, месяц и год, мы настраиваем нашу команду следующим образом:
Прелесть TO_CHAR() в том, что вы можете комбинировать различные форматы, чтобы создать окончательный вариант, который вы хотите использовать для своей даты. Давайте двинемся дальше и поработаем с временными метками.
Пример 3: Работа с меткой времени
До сих пор мы работали только с датами. Однако если ваша дата содержит время, вы можете извлечь время, указав его идеальный формат.
Вот пример, в котором мы указываем получение времени в 24-часовом формате из предоставленной метки времени, не указывая дату:
Для 12-часового формата времени мы используем HH12 вместо HH24. Взгляните на следующий пример:
Наконец, если мы хотим извлечь дату и время из предоставленной метки времени, нам нужно только добавить идеальный формат, который мы хотим использовать. Здесь мы указываем время с помощью HH12:MI:SS и добавляем разделитель. Далее мы указываем использовать в качестве даты «дд, месяц, гггг».
Наш конечный результат выглядит следующим образом:
Пример 4: Работа с таблицей
Все форматы, которые мы обсуждали и упоминали, можно применить к таблице PostgreSQL. В этом примере у нас есть таблица с именем «заказы», содержащая столбец «дата». Чтобы выбрать элементы из него и использовать TO_CHAR() для столбца «дата», мы выполняем нашу команду, как показано ниже:
Вы можете использовать любой формат, какой пожелаете. Вот та же команда, но с другим форматом даты:
Если мы хотим отображать только день недели и месяц из столбца даты, вот как мы настраиваем команду:
Не стесняйтесь указывать любой идеальный формат, с которым вы хотите работать в вашем случае.
Заключение
TO_CHAR() — это удобная функция PostgreSQL, которая позволяет пользователям преобразовывать временные метки и другие литералы в строки. В этом посте демонстрируются различные способы использования TO_CHAR() для дат. Мы предоставили разные примеры, чтобы вы быстрее усвоили содержание. Надеюсь, TO_CHAR() больше не будет вас беспокоить.