.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. データベース
  4. SQL Server
  5. SQL ServerのDATETIMEとは?文字列からの変換や注意点も紹介

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

  • SQL Server
  • データベース
公開日時:   更新日時:
SQL ServerのDATETIMEとは?文字列からの変換や注意点も紹介
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    SQL ServerのDATETIMEについて教えてください。

    プロジェクト
    マネージャー
    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」に丸められます。
    これにより、データを検索して取得する際に期待した結果が得られない場合がありますので注意しましょう。

    システム
    エンジニア
    SQL ServerのDATETIMEは3種類あるのですね。

    プロジェクト
    マネージャー
    はい。目的に応じて使い分けてみてください。

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


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

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    SQLServer新着案件New Job