sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで月の最初の日を取得する

    PostgreSQLで次のメソッドを使用して、特定の月の最初の日を返すことができます。

    これは、当月の初日、または指定した日付に基づく月の初日である可能性があります。

    月の最初の日を取得すると、月の初めに特定の日数を追加するなど、結果の日付についてさらに計算を実行できます。

    今月の初め

    今月の最初の日を返す例を次に示します。

    SELECT date_trunc('month', now());

    結果:

    2022-04-01 00:00:00+10

    これはPostgreSQLのdate_trunc()を使用します 必要な結果を返す関数。この関数は、日付/時刻の値を指定された精度に切り捨てます。

    この場合、now()を使用します 現在の日付と'month'を返す関数 引数はその日付を月の初めに変更します。

    必要に応じて、日付値にキャストできます:

    SELECT date_trunc('month', now())::date;

    結果:

    2022-04-01

    ここでも、例を実行した実際の日付とともに、次のようになります。

    SELECT 
        now()::date AS "Current Date",
        date_trunc('month', now())::date AS "Start of Month";

    結果:

    +--------------+----------------+
    | Current Date | Start of Month |
    +--------------+----------------+
    | 2022-04-09   | 2022-04-01     |
    +--------------+----------------+

    指定された月の始まり

    今月の初めである必要はありません。任意の日付を指定でき、その日付に基づいて月の初めが返されます。

    例:

    SELECT date_trunc('month', date '2030-07-14')::date;

    結果:

    2030-07-01

    その後、結果を使用して他のアクションを実行できます。たとえば、次のように結果に特定の日数を追加できます。

    SELECT date_trunc('month', date '2030-07-14')::date + 20;

    結果:

    2030-07-21

    データベースの例

    データベースの日付を使用する例を次に示します。

    SELECT
        rental_date,
        date_trunc('month', rental_date)::date AS "The 1st of the Month",
        date_trunc('month', rental_date)::date + 19 AS "The 20th of the Month"
    FROM rental WHERE customer_id = 459 LIMIT 10;

    結果:

    +---------------------+----------------------+-----------------------+
    |     rental_date     | The 1st of the Month | The 20th of the Month |
    +---------------------+----------------------+-----------------------+
    | 2005-05-24 22:54:33 | 2005-05-01           | 2005-05-20            |
    | 2005-06-17 02:50:51 | 2005-06-01           | 2005-06-20            |
    | 2005-06-17 09:38:22 | 2005-06-01           | 2005-06-20            |
    | 2005-06-17 16:40:33 | 2005-06-01           | 2005-06-20            |
    | 2005-06-20 02:39:21 | 2005-06-01           | 2005-06-20            |
    | 2005-06-20 12:35:44 | 2005-06-01           | 2005-06-20            |
    | 2005-06-20 12:42:00 | 2005-06-01           | 2005-06-20            |
    | 2005-06-21 02:39:44 | 2005-06-01           | 2005-06-20            |
    | 2005-07-06 00:22:29 | 2005-07-01           | 2005-07-20            |
    | 2005-07-08 02:51:23 | 2005-07-01           | 2005-07-20            |
    +---------------------+----------------------+-----------------------+

    1. XMLをCLOB列からXMLType列に変換するときにエラーが発生しました

    2. SQLで列の最小値を見つける方法

    3. mysql_num_rows()は、パラメーター1がリソースであると想定しています。ブール値は次のように指定されます。

    4. ISNULL()に相当するPostgreSQLとは何ですか