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

T-SQLで月末を取得する方法

    問題:

    T-SQLで特定の日付の月末日を検索したい。

    例:

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

    Id 名前 PurchaseDate
    1 ソファ 2019-02-10
    2 デスク 2019-04-01
    3 本棚 2019-05-20

    商品の名前と購入日、およびこれらの商品を購入した月の最終日を取得しましょう。

    解決策:

    関数EOMONTH()を使用して、月の最終日を検索します。

    SELECT Name,
    	 PurchaseDate,
    	 EOMONTH(PurchaseDate) AS LastDayDate
    FROM Furniture;
    

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

    名前 PurchaseDate LastDayDate
    ソファ 2019-02- 10 2019-02- 28
    デスク 2019-04- 01 2019-04- 30
    本棚 2019-05- 20 2019-05- 31

    ディスカッション:

    特定の日付の月の最終日を含む日付を取得する場合は、EOMONTH()関数を使用します。この関数は、1つの必須の引数を取ります。日付(または日付と時刻)です。これは、日付/日時列または日付を返す式にすることができます。 (この例では、PurchaseDateを使用します 列。)

    EOMONTH()は、引数と同じ月の最終日を返します。購入日が「2019-02-10」のソファに対する上記のクエリは、「2019-02-28」を返します。 2019年2月、月末は28日でした。

    特定の日付から2番目、3番目などの月の最終日を返す場合は、EOMONTH()のオプションの2番目の引数である追加する月数を使用します。例を見てください:

    SELECT Name,
    	 PurchaseDate,
    	 EOMONTH(PurchaseDate,1) AS LastDayDate
    FROM Furniture;
    

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

    名前 PurchaseDate LastDayDate
    ソファ 2019- 02 - 10 2019- 03 - 30
    デスク 2019- 04 - 01 2019- 05 - 31
    本棚 2019- 05 - 20 2019- 06 - 30

    購入日が「2019-02-10」のソファの場合、このクエリは「2019-03-30」(次のの最終日)を返します。 月。今月末に1か月追加しました。

    の月の最終日を検索する場合 特定の月に、2番目の引数として負の値(「-1」など)を使用します:

    SELECT Name,
    	 PurchaseDate,
    	 EOMONTH(PurchaseDate,-1) AS LastDayDate
    FROM Furniture;
    

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

    名前 PurchaseDate LastDayDate
    ソファ 2019- 02 - 10 2019- 01 - 31
    デスク 2019- 04 - 01 2019- 03 - 31
    本棚 2019- 05 - 20 2019- 04 - 30

    1. OracleODP.NetおよびEFCodeFirst-SaveChangesエラー

    2. SQLサーバーに画像を保存するためだけにJavaScriptを使用して画像をバイト配列に変換するにはどうすればよいですか?

    3. テーブルから最初のデータのみをクエリします

    4. MySQLに値を挿入するためのBashスクリプト