.net column
.NET開発者のためのブログメディア

タイマー

SQL ServerのDATETIMEとは?文字列からの変換や注意点も紹介

 

SE
SQL ServerのDATETIMEについて教えてください。

PM
SQL ServerのDATETIMEとは日付型です。種類や使用方法を紹介します。

SQL ServerのDATETIMEとは


SQL Serverにおいて、日付や時刻を扱いたいということは多くあると思います。そのような場合にはDATETIMEを代表とする日付型を使用します。
ここではSQL Serverでの日付型の扱い方を解説します。

SQL Serverの日付型の種類3つ


SQL Serverの日付および時刻のデータ型は複数の種類が存在します。その中でも代表的であり、よく使用される3つを紹介します。
それぞれについて形式と範囲を紹介しますので、目的に応じて使い分けるようにしましょう。

1:DATE

DATEは、日付のみを定義する日付型です。
形式と範囲は以下のとおりです。

  • 形式:YYYY-MM-DD
  • 範囲:0001-01-01 ~ 9999-12-31

2:DATETIME

DATETIMEは、1秒未満の秒を含む24時間形式の日時を定義する日付型です。
形式と範囲は以下のとおりです。

  • 形式:YYYY-MM-DD hh:mm:ss[.nnn]
  • 範囲:1753-01-01~9999-12-31

3:DATETIME2

DATETIME2は、1秒未満の秒を含む24時間形式の日時を定義する日付型です。
既存のDATETIME型を拡張して日付範囲と既定の有効桁数が増えており、必要に応じて有効桁数の指定が可能です。
形式と範囲は以下のとおりです。

  • 形式:YYYY-MM-DD hh:mm:ss[.nnnnnnn]
  • 範囲:0001-01-01~9999-12-31(時刻は00:00:00~23:59:59.9999999)

SQL Serverで文字列を日付型に変換する2つの方法


では、さっそく使い方を見ていきましょう。

CONVERTを使う方法3つ

CONVERTは任意の値を、指定したデータ型に変換するための関数です。
そして、CONVERT関数を使って文字列から日付型に変換する場合は、下記のように書きます。

※スタイルは省略可能です。

実際に書くと、このような記載になります。

1:年月日を指定

2:年月日をスラッシュで区切る

3:日時を指定

CASTを使う場合

CASTも、CONVERTと同様に値を任意のデータ型に変換することのできる関数です。
CASTを使う場合は以下のように書きます。

実際に書くと、このような記載になります。

年月日を指定

日時を指定

このように、CONVERTとCASTを使うことで文字列と日付型の変換を簡単に行うことができます。もし、スタイルを指定したい場合には、マイクロソフトの公式サイトからスタイルの一覧表を見ることができます。

SQL ServerでDATETIMEを使う際の注意点


SQL ServerでDATETIME型を使用する場合、丸め誤差に注意する必要があります。
datetime型の精度では、秒数の小数3桁目が0、3、7のいずれかに丸められます。例えば、「00:00:00.214」という時刻は「00:00:00.213」に丸められます。
これにより、データを検索して取得する際に期待した結果が得られない場合がありますので注意しましょう。

SE
SQL ServerのDATETIMEは3種類あるのですね。

PM
はい。目的に応じて使い分けてみてください。

SQL ServerでDATETIMEを使って日付データを取得しよう


今回は、SQL Serverで使いやすい日付型や、文字列と日付型の変換方法を紹介しました。たかが日付型ですが、されど日付型です。深く考えずに日付型を指定すると、入力値が無かったときにバグが出るなど思わぬエラーに遭遇することもありますので、ぜひシステムに適した日付型を使うようにしてみてください。そして、正しく日付データを取得できるようにしましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags