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

出力: