Для того чтобы извлечь временную часть (часы, минуты и секунды) из datetime(timestamp) в PostgreSQL. Мы будем использовать функцию CAST() или :: (нотация CAST). Окольными путями мы также можем использовать функцию extract() для извлечения только временной части из даты в PostgreSQL. Рассмотрим пример всех трех подходов. Мы также рассмотрим пример извлечения временной части (часов, минут и секунд) из столбца datetime таблицы PostgreSQL.

Извлечение временной части из datetime(timestamp) с помощью функции CAST() PostgreSQL:

Мы будем передавать datetime в функцию cast и упомянем AS TIME, что позволит извлечь из datetime в PostgreSQL только временную часть.

Пример 1:

SELECT CAST('2024-02-24 15:30:45' AS TIME);

Результат:

Пример 2:

SELECT CAST('2024-02-24 15:30:45.791354' AS TIME);

Результат:

Извлечение временной части из столбца datetime таблицы PostgreSQL – функция CAST():

Мы будем использовать таблицу Student_detail для нашего примера, чтобы показать, как извлечь временную часть из столбца datetime в postgresql.

Student_detail:

Мы будем использовать функцию cast() со столбцом , а также ключевое слово AS TIME для извлечения времени из datetime (временной метки) в PostgreSQL.

select *, CAST(birthdaytime AS TIME) as birthtime_only from student_detail

Столбец “birthdaytime” (datetime) используется для извлечения только временной части и сохраняется в новом столбце с именем “birthtime_only”.

Результат:

Извлечение временной части из datetime(timestamp) с помощью CAST Notation (::) PostgreSQL:

Мы будем передавать datetime вместе с нотацией cast (::) ::time, что позволит извлечь только временную часть из datetime в PostgreSQL.

Пример 1:

SELECT '2024-02-24 15:30:45'::time AS extracted_time;

Результат:

Пример 2:

SELECT '2024-02-24 15:30:45.791354'::time AS extracted_time;

Результат:

Извлечение временной части из столбца datetime таблицы PostgreSQL:

Мы будем использовать таблицу Student_detail для нашего примера, чтобы показать, как извлечь временную часть из столбца datetime в postgresql.

Student_detail:

Для извлечения времени из столбца datetime (timestamp) в PostgreSQL мы будем использовать кастомную нотацию (::) вместе со столбцом ,.

SELECT *,birthdaytime::timestamp::time AS birthtime_only FROM student_detail;

Столбец “birthdaytime” (datetime) используется для извлечения только временной части и хранится в новом столбце с именем “birthtime_only”.

Результат:

Извлечение временной части из datetime(timestamp) PostgreSQL:

Это обходной путь. Мы будем извлекать часы, минуты и секунды из Timestamp (datetime) и конкатенировать их, чтобы создать только временную часть.

Пример 1:

SELECTn  EXTRACT(HOUR FROM '2024-02-24 15:30:45'::timestamp)::text || ':' ||  EXTRACT(MINUTE FROM '2024-02-24 15:30:45'::timestamp)::text || ':' ||  EXTRACT(SECOND FROM '2024-02-24 15:30:45'::timestamp)::text AS formatted_time;

Результат:

Извлечение временной части из столбца datetime таблицы PostgreSQL:

Мы будем использовать таблицу Student_detail для нашего примера, чтобы показать, как извлечь временную часть из столбца datetime в PostgreSQL.

Student_detail:

Мы будем извлекать часы, минуты и секунды из столбца birthdaytime и объединять их, чтобы создать только часть Time из столбца datetime (timestamp) в PostgreSQL.

select *, EXTRACT(HOUR FROM birthdaytime::timestamp)::text || ':' ||  EXTRACT(MINUTE FROM birthdaytime::timestamp)::text || ':' ||  EXTRACT(SECOND FROM birthdaytime::timestamp)::text AS formatted_time from student_detail

Результат: