【SQLServer】CONVERT で文字列から日付型に変換する

CONVERT(文字列から日付型に変換)

構文

SQLServerで文字列を日付型に変換するには「CONVERT」を使います。

CONVERT(日付型, 文字列)

 

例1. 文字列を日付型に変換する(年月日)パターン

--文字列'20220901'を日付型に変換する
SELECT CONVERT(DATETIME, '20220901');
[結果] 2022-09-01 00:00:00.000

CONVERTを使って、文字列「20220901」を日付型に変換することができました。

例2. 文字列を日付型に変換する(年月日)スラッシュ区切りパターン

--文字列'2022/09/01'を日付型に変換する
SELECT CONVERT(DATETIME, '2022/09/01');
[結果] 2022-09-01 00:00:00.000

スラッシュ入りの文字列「2022/09/01」もCONVERTを使って日付型に変換することができました。

例3. 文字列を日付型に変換する(時間)パターン

--文字列'20220901 23:00:10'を日付型に変換する
SELECT CONVERT(DATETIME, '20220901 23:00:10');
[結果] 2022-09-01 23:00:10.000

時間を含む文字列「20220901 23:00:10」もCONVERTを使って日付型に変換することができました。

--文字列'20220901230010'を日付型に変換する
SELECT CONVERT(DATETIME, '20220901230010');
[結果] エラー(変換できない)

時間を含む文字列でも「20220901230010」の形式ではCONVERTを使っても日付型に変換することはできません。その場合、「日付」と「時間」の間に半角スペースを入れ、「時間」と「分」と「秒」の間にコロン(:)を入れてやればCONVERTで変換できます。

これで文字列を日付型に変換することができました。

以上、SQLServerで文字列を日付型に変換するCONVERTでした。

コメント

  1. byuniml より:

    –文字列’20170101230010’を日付型に変換する
    SELECT CONVERT(DATETIME, ‘20170101230010’)
    [結果] エラー(変換できない)

    ↑これのやり方を検索してこのページにたどり着くやつしかこういうの検索しないはずなんだけど
    このザマでページ公開してて恥ずかしくないの?