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

SQLServerの現在のセッションの日付形式を変更する

    SQL Serverに接続するたびに、一連のデフォルト設定がセッションに適用されます。これらには、言語と日付形式の設定が含まれます。

    日付形式は通常、デフォルトの言語によって決定されます。たとえば、デフォルトの言語がus_englishの場合 、その場合、デフォルトの日付形式はおそらくmdyになります 、および週の最初の日は日7になります (日曜日)。

    言語を変更すると、それに応じて日付形式が暗黙的に更新されます。

    ただし、言語を変更せずに日付形式を変更するオプションは引き続きあります。これを行うには、SET DATEFORMATを使用できます 。

    まず、現在の設定を見てみましょう。

    DBCC USEROPTIONS;

    結果:

    +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | us_english     |
     | dateformat              | mdy            |
     | datefirst               | 7              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+ 

    だから私の現在の言語はus_english 日付形式はmdyです。 。

    日付の形式を変更して、もう一度確認しましょう。

    SET DATEFORMAT dmy;
    DBCC USEROPTIONS;

    結果:

    +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | us_english     |
     | dateformat              | dmy            |
     | datefirst               | 7              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+ 

    そのため、言語を変更せずに日付形式を変更することに成功しました。ただし、datefirst 同じまま。 datefirstを変更する場合 値、SET DATEFIRSTを使用 。

    SET DATEFIRST 1;
    DBCC USEROPTIONS;

    結果:

     
    +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | us_english     |
     | dateformat              | dmy            |
     | datefirst               | 1              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+ 

    この場合、週の最初の日を1日目、つまり月曜日に変更しました。

    リセットして戻す

    言語を設定すると、dateformatが暗黙的に設定されます およびdatefirst 設定をその言語のデフォルト値に戻します(言語を現在の言語にリセットした場合でも)。

    したがって、私の場合は、言語をus_englishにリセットできます。 、および日付形式の値もリセットされます。

    SET LANGUAGE us_English;
    DBCC USEROPTIONS;

    結果:

    +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | us_english     |
     | dateformat              | mdy            |
     | datefirst               | 7              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+ 

    1. MySQLでのRTRIM()関数のしくみ

    2. EBS12.2ビジョンインスタンスのインストールを実行する方法

    3. MSSQL CTEクエリをMySQLに変換する方法は?

    4. 電話番号を文字列と整数で保存するのが最適なのはなぜですか?