PostgreSQLで2つの日付または日付時刻(タイムスタンプ)の差を日数で取得するには、単純な差記号(減算)を使用します。PostgreSQLで2つの日付の差を求める回りくどい方法として、extract()関数を使用することもできます。2つのアプローチの例を見てみましょう。また、例も検討します。PostgreSQL テーブルの days にある 2 つの日付または datetime(timestamp) 列の差を取得する方法の例。

2つの日付の日数差単純な差分を使用する PostgreSQL:

単純な差分記号は、以下に示すように、2 つの日付の差を日数で計算するために使用されます。

例1:

SELECT '2024-02-28'::date - '2024-02-24'::date AS date_difference_in_days

出力:

2 つの日付の日数差 - PostgreSQL 1

2つの日付の日数差PostgreSQL EXTRACT() を使用する:

EXTRACT() 関数では、日付の差を計算する必要がある 2 つの日付を渡します。また、PostgreSQL で 2 つの日付の差を日数で計算する DAY を引数として受け取ります。

例1:

SELECT EXTRACT(DAY FROM '2024-02-28 15:30:00'::timestamp - '2024-02-24 10:45:00'::timestamp) AS date_difference_in_days;

出力:

2 つの日付の日数差 - PostgreSQL 1

2つの日付列の日数差PostgreSQL:

方法1

この例では、以下の Student_detail2 テーブルを使用して、PostgreSQL で 2 つの日付列の日数の差を見つける方法を説明します。

Student_detail2:

2 つの日付の日数差 - PostgreSQL 2

単純な差分シンボルは、以下に示すように、PostgreSQL テーブル内の 2 つの日付列の差を日数で計算するために使用されます。

SELECT *, examdatetime::date - birthdaytime::date As date_diff_in_days from Student_detail2

2つの日付列を日付に型変換し、その差を計算したので、切り捨てられます。

出力:

2 つの日付の日数差 - PostgreSQL 3

方法2

日付と時間の2つの日付列の差を見つけるために、以下の方法を使用しました。

SELECT *, examdatetime::timestamp - birthdaytime::timestamp As date_diff_in_days from Student_detail2

2つの日付列をタイムスタンプに型変換して差を計算しました。そのため、日数での日付差を計算する結果の列には、以下に示すように、日数と時間の差が表示されます。

出力:

2 つの日付の日数差 - PostgreSQL 4

2つの日付列の日数差PostgreSQL EXTRACT() を使用する:

この例では、以下の Student_detail2 テーブルを使用して、PostgreSQL で 2 つの日付列の日数の差を見つける方法を説明します。

Student_detail2:

2 つの日付の日数差 - PostgreSQL 2

EXTRACT() 関数では、日付の差を計算する必要がある 2 つの日付列を渡します。また、PostgreSQL の 2 つの日付列の差を日数で計算する DAY を引数として受け取ります。

SELECT *,EXTRACT(DAY FROM examdatetime::timestamp -  birthdaytime::timestamp) AS date_diff_in_days from Student_detail2;

2 つの日付列をタイムスタンプに型変換し、その違いを検出したので、結果のテーブルは次のようになります。

出力:

2 つの日付の日数差 - PostgreSQL 6