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

SQLiteで日付に月を追加する方法

    問題:

    SQLiteデータベースの特定の日付に1か月を追加したいとします。

    例:

    私たちのデータベースには、production id列にデータがあります 、product 、およびstart_date

    id 製品 start_date
    1 デスク 2019-08-17
    2 アームチェア 2019-07-17
    3 ソファ 2019-10-31

    製品の新しい生産開始日は、上記のリストより1か月遅れています。製品の名前と新しい開始日を取得しましょう。

    作成するクエリは次のとおりです。

    解決策:

    SELECT product,
      DATE(start_date,'+1 months')
      AS new_start_date
    FROM production;
    

    クエリの結果は次のとおりです。

    id 製品 new_start_date
    1 デスク 2019-09-17
    2 アームチェア 2019-08-17
    3 ソファ 2019-12-01

    ディスカッション:

    SQLiteのDATE()を使用します 指定された日付(または日付と時刻)に1か月を追加する関数。必要な引数には、変更する日付/日時と、加算または減算する単位の数を示す値を持つ1つ以上の修飾子が含まれます。

    最初の引数は、日付/日時の値または日付/日時の列を返す式にすることができます。この例では、start_date列です。 。

    修飾子は、加算/減算する時間単位(および量)を示します。この例では、修飾子「 +1months」を使用しています。 ’。修飾子はプラスまたはマイナスで始まり、加算または減算を示します。次に、値(例:1)と単位(例:)があります 、 など)「-2日 ’、指定された日付から2日を減算します。

    重要: 一部の修飾子は、上記とは少し異なる構文を必要とします。たとえば、「平日 ’修飾子は値の前にあります(つまり、DATE(start_date,'weekday 3') )。 「月の初め」など、他の修飾子は値を取りません。 ’、指定された日付の月の最初の日を表示します(つまり、DATE(start_date,' start of month') )。日付と時刻の修飾子に関する正確な情報は、SQLiteのドキュメントにあります。

    更新された開始日を含む新しい列にnew_start_dateという名前を付けました 。 デスクの新しい生産開始日 は2019-09-172019-08-17の元の日付より1か月後 。 2019-10-31の場合は注意してください 、新しい日付は2019-12-01;これは、11月が31日ではなく30日であるためです。


    1. Ubuntu14.04でphpMyAdminを使用してMySQLをインストールする方法

    2. PostgreSQLの2つのデータベース間でデータを比較するにはどうすればよいですか?

    3. PHPでPDOを使用して開いたSQL接続を閉じる必要がありますか

    4. NetBeans 9.0、パート2のJava9でJShellを使用する