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

SQLiteで毎月第1月曜日を返す

    SQLiteのDATE()を使用できます 提供された日付に基づいて、特定の年の毎月第1月曜日を返す関数。

    ただし、月曜日に限定されません。毎月第1火曜日、水曜日、木曜日、金曜日なども取得できます。

    または、次のようなコードを使用して、年間を通じて毎月第1月曜日を返すこともできます。

    SELECT 
        DATE('2025-10-20', 'start of year', 'weekday 1') AS "Jan",
        DATE('2025-10-20', 'start of year', '+1 month', 'weekday 1') AS "Feb",
        DATE('2025-10-20', 'start of year', '+2 months', 'weekday 1') AS "Mar",
        DATE('2025-10-20', 'start of year', '+3 months', 'weekday 1') AS "Apr",
        DATE('2025-10-20', 'start of year', '+4 months', 'weekday 1') AS "May",
        DATE('2025-10-20', 'start of year', '+5 months', 'weekday 1') AS "Jun",
        DATE('2025-10-20', 'start of year', '+6 months', 'weekday 1') AS "Jul",
        DATE('2025-10-20', 'start of year', '+7 months', 'weekday 1') AS "Aug",
        DATE('2025-10-20', 'start of year', '+8 months', 'weekday 1') AS "Sep",
        DATE('2025-10-20', 'start of year', '+9 months', 'weekday 1') AS "Oct",
        DATE('2025-10-20', 'start of year', '+10 months', 'weekday 1') AS "Nov",
        DATE('2025-10-20', 'start of year', '+11 months', 'weekday 1') AS "Dec";

    結果:

    Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
    ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
    2025-01-06  2025-02-03  2025-03-03  2025-04-07  2025-05-05  2025-06-02  2025-07-07  2025-08-04  2025-09-01  2025-10-06  2025-11-03  2025-12-01

    ここでは、 DATE()と呼びます。 12回機能します。毎回同じ日付を使用し、ほとんどの引数は同じです。唯一変わるのは、年の初めにどれだけ追加するかです。

    今年の初めを使用します 日付を年の最初の日に戻します。次に、追加の修飾子を使用して、それに応じてその日付を変更します。

    日付に月を追加しない場合は、1月の第1月曜日に戻ります。 +1か月を追加 2月の第1月曜日を返します。

    平日1 修飾子は、日付を次の月曜日に進めます。日曜日は0、月曜日は1、火曜日は2などです。たとえば、火曜日が必要な場合は、 weekday 2を使用します。 代わりに。

    現在の日付を使用する

    次の例では、現在の日付を使用しています。

    SELECT 
        DATE('now') AS "Now",
        DATE('now', 'start of year', 'weekday 1') AS "Jan",
        DATE('now', 'start of year', '+1 month', 'weekday 1') AS "Feb",
        DATE('now', 'start of year', '+2 months', 'weekday 1') AS "Mar",
        DATE('now', 'start of year', '+3 months', 'weekday 1') AS "Apr",
        DATE('now', 'start of year', '+4 months', 'weekday 1') AS "May",
        DATE('now', 'start of year', '+5 months', 'weekday 1') AS "Jun",
        DATE('now', 'start of year', '+6 months', 'weekday 1') AS "Jul",
        DATE('now', 'start of year', '+7 months', 'weekday 1') AS "Aug",
        DATE('now', 'start of year', '+8 months', 'weekday 1') AS "Sep",
        DATE('now', 'start of year', '+9 months', 'weekday 1') AS "Oct",
        DATE('now', 'start of year', '+10 months', 'weekday 1') AS "Nov",
        DATE('now', 'start of year', '+11 months', 'weekday 1') AS "Dec";

    結果:

    Now         Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
    ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
    2022-03-10  2022-01-03  2022-02-07  2022-03-07  2022-04-04  2022-05-02  2022-06-06  2022-07-04  2022-08-01  2022-09-05  2022-10-03  2022-11-07  2022-12-05

    1. プログラムでどのSQLテーブルにID列があるかをどのように判断しますか

    2. Android-2つのテーブルに関連するデータをコンテンツプロバイダーの挿入メソッドに渡すにはどうすればよいですか?

    3. Postgresの\connectコマンドに対応するJDBCは何ですか?

    4. 初心者のためのSQLDELETE