PostgreSQLのdatetime(timestamp)から時間部分(時間、分、秒)を抽出するには、CAST()関数を使用します。::(CAST表記)
回りくどい方法ではありますが、PostgreSQLの日付から時刻部分だけを抽出するためにextract()関数を使うこともできます。3つのアプローチの例を見てみましょう。また、次のような例も考えてみましょう。時間部分を抽出する方法の例(時間、分、秒)PostgreSQL テーブルの datetime 列から。
CAST() 関数を使用して datetime(timestamp) から時刻部分を抽出します PostgreSQL:
datetime をキャスト関数に渡し、AS TIME を指定します。これにより、PostgreSQL の datetime から時刻部分のみが抽出されます。
例1:
SELECT CAST('2024-02-24 15:30:45' AS TIME);
出力:

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

PostgreSQL テーブルの datetime 列から時刻部分を抽出 – CAST() 関数:
この例では、以下の Student_detail テーブルを使用して、PostgreSQL の datetime 列から時間部分を抽出する方法を説明します。
Student_detail:

cast()関数を使用します。とカラム 、AS TIMEキーワードとともにPostgreSQL で datetime (timestamp) から時刻を抽出します。
select *, CAST(birthdaytime AS TIME) as birthtime_only from student_detail
「birthdaytime」(datetime)列は時間部分のみを抽出するために使用され、「birthtime_only」という名前の新しい列に保存されます。
出力:

CAST表記法を使用してdatetime(timestamp)から時刻部分を抽出します(::
) PostgreSQL:
datetimeをキャスト表記とともに渡します(::
) ::time は、PostgreSQL の datetime から時刻部分のみを抽出します。
例1:
SELECT '2024-02-24 15:30:45'::time AS extracted_time;
出力:

例2:
SELECT '2024-02-24 15:30:45'::time AS extracted_time;
出力:

PostgreSQL テーブルの datetime 列から時刻部分を抽出します。
この例では、以下の Student_detail テーブルを使用して、PostgreSQL の datetime 列から時間部分を抽出する方法を説明します。
Student_detail:

キャスト表記を使用します(::)
とともにPostgreSQL で datetime (timestamp) から時刻を抽出します。
SELECT *,birthdaytime::timestamp::time AS birthtime_only
FROM student_detail;
「birthdaytime」(datetime)列は時間部分のみを抽出するために使用され、「birthtime_only」という名前の新しい列に保存されます。
出力:

datetime(timestamp) PostgreSQL から時刻部分を抽出します。
これは回りくどい方法です。タイムスタンプ (datetime) から時間、分、秒を抽出し、それらを連結して時間部分のみを作成します。
例1:
SELECT
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;
出力:

PostgreSQL テーブルの datetime 列から時刻部分を抽出します。
この例では、以下の Student_detail テーブルを使用して、PostgreSQL の datetime 列から時間部分を抽出する方法を説明します。
Student_detail:

時間、分、秒を抽出します誕生日列を連結して、PostgreSQL の datetime (timestamp) 列から時間部分のみを作成します。
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
出力:
