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

SQL Server(T-SQL)で月の名前を月の番号に変換する

    SQL Serverでは、MONTH()を使用できます 月の名前を対応する番号に変換する関数。

    月の名前を月の番号に変換する例を次に示します。

    SELECT MONTH('September' + '1,1');

    結果:

    9

    ここで行っているのは、基本的に「日付」(指定した月を含む)を作成して、SQLServerがMONTH()を使用するときにエラーをスローしないようにすることです。 有効な日付なしで機能します。

    この関数は、時間に解決できるすべての式を受け入れます 、日付 smalldatetime 日時 datetime2 、または datetimeoffset 価値。式、列式、ユーザー定義変数、または文字列リテラルにすることができます。

    その他の「日付のような」

    次のようにすることで、より「日付のような」引数を提供することもできます。

    SELECT MONTH('September' + ' 01, 1900');

    結果:

    9

    現在の日付と年

    または、現在の日と年を使用したい場合は、次のようにすることができます:

    SELECT MONTH('September' + FORMAT(GETDATE(), 'd,y'));

    結果:

    9

    ただし、明確にするために、指定された月が現在の月と同じでない限り、現在の日付とは異なる日付になってしまいます。

    これが私が何を意味するかを説明するための例です:

    SELECT 
      FORMAT(GETDATE(), 'MMMM d, yyyy') AS [Today],
      'September' + FORMAT(GETDATE(), ' d, yyyy') AS [Modified],
      MONTH('September' + FORMAT(GETDATE(), ' d, yyyy')) AS [Month Number];

    結果:

     +----------------+--------------------+----------------+
     | Today          | Modified           | Month Number   |
     |----------------+--------------------+----------------|
     | March 22, 2020 | September 22, 2020 | 9              |
     +----------------+--------------------+----------------+ 

    このクエリを2020年3月22日に実行しましたが、変更日は2020年9月22日です。

    とにかく、MONTH()を使用すると、正しい月番号が返されます。 。


    1. SQL ServerのCHOOSE()関数に相当するMySQLとは何ですか?

    2. mysqliに多くの値を挿入する最良の方法は?

    3. MySQLの2つの日付間の年の差を整数として取得します

    4. ウェビナー:PostgreSQL11の新機能[フォローアップ]