ホーム > SQL Server, データベース > SQL Server 2008でdatetime型の項目からWhere句で該当日付の範囲データ抽出

SQL Server 2008でdatetime型の項目からWhere句で該当日付の範囲データ抽出

2009 年 4 月 22 日

datetime型の項目からWhere句で該当日付のみ抽出

photo by Steve-h

SQL Server 2008から、Date型、Time型が追加となりましたね。

SQL Server 2005までは、Datetime型しかなく「日付のみ保持したいのに…」とか、「時刻のみ保持したい…」という場合も、datetime型で代用していました。
ですが、日時をまとめて保持したい場合は、datetime型を利用します。

たとえば、 ‘2009/01/01’の値が入っている該当項目を抽出したいとき、下記のように問い合わせても抽出できません。
比較対象が、datetime型なので日付ではないからです。

SELECT * FROM hoge WHERE hoge_datetime = '2009/01/01'

こんなときに、convert関数を用いて、問い合わせ先の項目を日付比較ができるようキャストします。

SELECT * FROM busy WHERE Convert(NVARCHAR, hoge_datetime, 111) = '2009/01/01'

Convert関数で、上の例では、 hoge_datetime項目を指定スタイル(111(4桁の年、日本、yy/mm/dd))にキャストして比較されます。

MSDN SQL Server 2008 オンライン ブック CAST および CONVERT (Transact-SQL)

SQL Server Compact 3.5でもConvert関数は使用可能です。

関連するエントリー

    None Found

SQL Server, データベース , , , , , , ,

  1. コメントはまだありません。
  1. トラックバックはまだありません。