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

T-SQLで日付から30日を引く方法

    問題:

    T-SQLで特定の日付の30日前の日付を取得したい。

    例:

    私たちのデータベースには、Computer Id列にデータがあります 、Name 、およびPurchaseDate

    Id 名前 PurchaseDate
    1 Sony GX1000 2019-01-20
    2 Samsung LX2000 2019-04-15
    3 Dell K80 2019-08-30

    各コンピュータの名前と30日前の日付を取得しましょう 購入日。

    解決策:

    DATEADD()関数を使用して、日付から指定された日数を減算します。

    	SELECT Name,
    		  DATEADD(day, -30, PurchaseDate)
    		    AS BeforePurchaseDate;
          FROM Computer;
    

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

    名前 BeforePurchaseDate
    Sony GX1000 2018-12-21
    Samsung LX2000 2019-03-16
    Dell K80 2019-07-31

    ディスカッション:

    SQL Serverで日付または時刻を減算する場合は、DATEADD()を使用します。 働き。 3つの引数が必要です。最初の引数は日付/時刻の単位です。この例では、を指定します 単位。

    次は、日付または時刻の単位 value 。この例では、これは -30です。 、現在の日付から30日離れているためです。マイナスは減算を意味することに注意してください 値;この記号がないと、指定された日付に追加されます。

    最後の議論は、私たちが活動している日付です。これは、日付/時刻/日時列、または日付または時刻を返す任意の式にすることができます。この例では、PurchaseDateを使用します 、date 桁。

    この関数は変更された日付を返します。この例では、'Dell K80'という名前のコンピュータのクエリ BeforePurchaseDateに新しい日付を返します 桁。元の日付'2019-08-30' 30日前の日付に変更されます:'2018-07-31'

    DATEADD()を使用できます すべての日付と時刻のデータ型に対して機能します。


    1. OracleのABS()関数

    2. SQLServer-SQLスクリプトの実行を停止または中断します

    3. MYSQL count(*)またはcount(1)の何が優れていますか?

    4. Rails + Postgresドロップエラー:データベースは他のユーザーによってアクセスされています