
SQL ServerのCONVERTやCASTを使って文字列を日付型に変換する
「SQL Serverで文字列を日付型に変換したい!」と思うことは多くあると思います。実はとても簡単です。
この記事では、CONVERTやCASTを使って文字列を日付型に変換する方法を紹介していきます。参考になれば幸いです。
- SE
- 文字列から日付型の変換はなかなか覚えられなくて毎回調べてしまいます……
- PL
- ここで変換をする際の書き方を紹介しますので、ぜひ覚えて帰ってください。
目次
SQL Serverで文字列を日付型に変換するには
では、さっそく使い方を見ていきましょう。
CONVERTを使う場合
CONVERTは任意の値を、指定したデータ型に変換するための関数です。
そして、CONVERT関数を使って文字列から日付型に変換する場合は、下記のように書きます。
1 |
CONVERT(日付型, 文字列, (スタイル)) |
※スタイルは省略可能です。
実際に書くと、このような記載になります。
—年月日を指定する場合—
1 2 |
SELECT CONVERT(DATETIME, ‘2019/01/01’) 結果|2019-01-01 00.00.00.000 |
—日時を指定する場合—
1 2 |
SELECT CONVERT(DATETIME, ‘20190101 12:30:00’) 結果|2019-01-01 12:30:00.000 |
CASTを使う場合
CASTも、CONVERTと同様に値を任意のデータ型に変換することのできる関数です。
CASTを使う場合は以下のように書きます。
1 |
CAST(文字列 AS 日付型) |
実際に書くと、このような記載になります。
—年月日を指定する場合—
1 2 |
SELECT CAST(‘2019/01/01’ AS DATETIME) 結果|2019-01-01 00.00.00.000 |
—日時を指定する場合—
1 2 |
SELECT CAST(‘2019/01/01 12:30:00’ AS DATETIME) 結果|2019-01-01 12:30:00.000 |
このように、CONVERTとCASTを使うことで文字列と日付型の変換を簡単に行うことができます。もし、スタイルを指定したい場合には、マイクロソフトの公式サイトからスタイルの一覧表を見ることができます。
使いやすい日付型は
前項では日付型に[DATETIME]を指定していますが、実は他にも様々な日付型があります。ここでは、その中でも使いやすい日付型を2つ紹介します。
使いやすい日付型1|DATETIME型
DATETIMEは、1秒未満の秒を含む24時間形式の日時を定義する日付型です。
形式と範囲は以下のとおりです。
- 形式:YYYY-MM-DD hh:mm:ss[.nnn]
- 範囲:1753-01-01~9999-12-31
使いやすい日付型2|TYMESTAMP型
TYMESTAMP型は、日付と日時両方を返す日付型。日付の計算をする際も便利です。
形式と範囲は以下のとおりです。
- 形式:YYYY-MM-DD hh:mm:ss
- 範囲:4713BC~29476AD
- SE
- なるほど……日付型の変換は簡単そうですね!今回は覚えられる気がします。
- PL
- 使いやすい日付型もあるので、ぜひ活用してみてくださいね。
日付型を制するものはプログラムを制す
今回は、SQL Serverで文字列を日付型に変換する方法や、プログラムを書く上で使いやすい日付型を紹介しました。たかが日付型ですが、されど日付型です。深く考えずに日付型を指定すると、入力値が無かったときにバグが出るなど思わぬエラーに遭遇することもありますので、ぜひシステムに適した日付型を使うようにしてみてください。