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

CONVERT()を使用してSQLServerで日付/時刻値を文字列に変換する方法

    SQL Serverを使用する場合、 CONVERT()を使用して、日付/時刻の値を文字列に変換できます。 働き。この関数を使用すると、異なるデータ型間で変換できます。

    この記事では、さまざまな日付/時刻データ型を varcharに変換します。 またはnvarchar 文字列。

    この関数の良い点の1つは、日付が返されるスタイルを指定できることです。たとえば、 mm / dd / yyyyとして返されるかどうかを指定できます。 、 yyyy.mm.dd Mon dd、yyyy 、など。時間コンポーネントを返すかどうか、およびそのスタイルを指定することもできます。

    構文

    まず、公式の構文は次のとおりです。

    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

    これらの引数は次のように定義されています。

    有効な式。
    data_type
    ターゲットデータ型。これには、 xmlが含まれます 、 bigint 、および sql_variant 。エイリアスデータ型は使用できません。
    長さ
    ターゲットデータ型の長さを指定するオプションの整数。デフォルト値は30です 。
    スタイル
    CONVERT()の方法を指定する整数式 関数はを変換します 。 NULLのスタイル値の場合、NULLが返されます。 data_type 範囲を決定します。

    基本的な例

    この例では、変数を宣言し、 GETDATE()から値を割り当てます。 働き。次に、値を返し、その値を varcharに変換します。 そしてそれを返します:

    DECLARE @date datetime = GETDATE();
    SELECT
        @date AS Original,
        CONVERT(varchar, @date) AS Converted;

    結果:

    +-------------------------+---------------------+
    | Original                | Converted           |
    |-------------------------+---------------------|
    | 2018-06-07 03:08:21.997 | Jun  7 2018  3:08AM |
    +-------------------------+---------------------+
    

    戻りデータ型のデフォルトの長さは30です。 、したがって、 varcharのみを指定した場合でも 、結果を varchar(30)として返します 。

    この例では、返されるスタイルを示す3番目の引数を指定していません。したがって、 datetimeのデフォルトスタイルを使用して変換されています。 およびsmalldatetime 0であるデータ型 または100 (以下のスタイルの詳細)

    スタイルの指定

    3番目の引数を使用して、戻り値がとるスタイルを指定できます。

    DECLARE @date datetime = GETDATE();
    SELECT
        @date AS Original,
        CONVERT(varchar(30), @date, 102) AS Converted;

    結果:

    +-------------------------+-------------+
    | Original                | Converted   |
    |-------------------------+-------------|
    | 2018-06-07 03:42:33.840 | 2018.06.07  |
    +-------------------------+-------------+
    

    この例では、 102のスタイルを指定しました 、これは、4桁の年コンポーネントで日付を表示するためのANSI規格です。

    これを2桁の年のANSI形式に変更するには、 2のスタイルを使用できます。 :

    DECLARE @date datetime = GETDATE();
    SELECT
        @date AS Original,
        CONVERT(varchar(30), @date, 2) AS Converted;

    結果:

    +-------------------------+-------------+
    | Original                | Converted   |
    |-------------------------+-------------|
    | 2018-06-07 03:44:52.433 | 18.06.07    |
    +-------------------------+-------------+
    

    SQL Serverの日付/時刻から文字列の例までのCONVERT()の例をもっと見ることができます。


    1. SQL Server Management Studio(SSMS)でカスタムショートカットを作成する方法-SQL Server/TSQLチュートリアルパート10

    2. SQLServer-パラメータスニッフィング

    3. SQLを使用してアルファと数値を分割する

    4. MySQLでNULLを別の値に置き換える4つの方法