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

SQLServerで文字列を日付/時刻値に変換する6つの方法

    SQL Serverで文字列を日付/時刻の値に変換する必要がある場合は、いくつかのオプションがあります。この投稿では、これを可能にする6つのT-SQL関数の概要を説明します。

    6つの機能は次のとおりです。

    • CAST()
    • CONVERT()
    • PARSE()
    • TRY_CAST()
    • TRY_CONVERT()
    • TRY_PARSE()

    以下は、これらの関数を使用して文字列を日付/時刻データ型に変換する方法の例です。

    CAST()関数

    この例では、文字列を日付に変換します データ型(dateを使用してこれを指定します 2番目の引数として)。

    SELECT CAST('20 Dec 2018' AS date) AS Result;

    結果:

    +------------+
    | Result     |
    |------------|
    | 2018-12-20 |
    +------------+
    

    その他の例については、CAST()を使用してSQLServerで文字列を日付/時刻に変換する方法を参照してください。 。

    CONVERT()関数

    ここでは、前の例と同じ変換を行いますが、CONVERT()を使用します。 働き。ここでの唯一の違いは構文です。

    SELECT CONVERT(date, '20 Dec 2018') AS Result;

    結果:

    +------------+
    | Result     |
    |------------|
    | 2018-12-20 |
    +------------+
    

    その他の例については、CONVERT()を使用してSQLServerで文字列を日付/時刻に変換する方法を参照してください。 。

    PARSE()関数

    この例では、文字列の一部として平日を追加します。私がこれを行う理由は、この関数が他の関数よりも優れていることを示すためです。この形式で他の関数に日付を指定すると、エラーが発生します。ただし、PARSE() 関数はこれを処理できます:

    SELECT PARSE('Thursday, 20 Dec 2018' AS datetime2) 
    AS 'Result';

    結果:

    +-----------------------------+
    | Result                      |
    |-----------------------------|
    | 2018-12-20 00:00:00.0000000 |
    +-----------------------------+
    

    その他の例については、PARSE()を使用してSQLServerで文字列を日付/時刻に変換する方法を参照してください。 。

    TRY_CAST()関数

    TRY_CAST()を使用できます CAST()の代わりに エラーをよりスムーズに処理する方法を提供します。 CAST()を使用する場合 関数、キャストが失敗した場合、エラーを返します。ただし、TRY_CAST()を使用する場合 代わりに関数を返し、NULLを返します そのような場合。

    キャストが失敗した例は次のとおりです。

    SELECT TRY_CAST('Next month' AS date) AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | NULL     |
    +----------+
    

    同じ値をCAST()に提供した場合 代わりに機能します。次のようになります。

    SELECT CAST('Next month' AS date) AS Result;

    結果:

    Conversion failed when converting date and/or time from character string.
    

    その他の例については、CASTをご覧ください。 vs TRY_CAST SQL Serverの場合:違いは何ですか?

    TRY_CONVERT()関数

    TRY_CONVERT()を使用することもできます CONVERT()の代わりに より良いエラー処理のために。 CONVERT()の場合 関数が失敗すると、エラーが返されます。ただし、TRY_CONVERT() 失敗すると、NULLを返します 。

    変換が失敗した例を次に示します。

    SELECT TRY_CONVERT(date, 'Next month') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | NULL     |
    +----------+
    

    同じ値をCONVERT()に提供した場合 代わりに機能します。次のようになります。

    SELECT CONVERT(date, 'Next month') AS Result;

    結果:

    Conversion failed when converting date and/or time from character string.
    

    その他の例については、CONVERTをご覧ください。 vs TRY_CONVERT SQL Serverの場合:違いは何ですか?

    TRY_PARSE()関数

    TRY_PARSE()を使用することもできます PARSE()の代わりに より良いエラー処理のために。 PARSE()の場合 関数が失敗すると、エラーが返されます。ただし、TRY_PARSE() 失敗すると、NULLを返します 。

    変換が失敗した例を次に示します。

    SELECT TRY_PARSE('Next month' AS date) AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | NULL     |
    +----------+
    

    同じ値をPARSE()に提供した場合 代わりに機能します。次のようになります。

    SELECT PARSE('Next month' AS date) AS Result;

    結果:

    Error converting string value 'Next month' into data type date using culture ''.
    

    1. MySQL-文字列の長さでデータを選択する方法

    2. ODBC接続を使用したExcelVBAマクロからのOracleテーブルの更新

    3. PL / SQLを使用してOracleでログファイルを作成するにはどうすればよいですか?

    4. PHPでのMySQL*.sqlファイルの実行