2012/05/03

SQL Serverを使った「任意の時間帯データ」を抽出する方法

image
SQLを使ったデータベース操作は非常に楽チンですが、データの抽出するSQL文を考えるのは難しいですよね。
今回はSQL Serverを使ったある期間内で任意の時間帯に該当するデータを抽出するSQL文をメモ。

ある期間内で任意の時間帯に該当するデータを抽出したい!

例えば、4/26~4/29の期間で10:00~10:30のデータを抽出したいとします。
↓の赤字が該当データとなります。

時間                          |回数
---------------------------------------------
2012/04/26 10:00:00|0
2012/04/26 10:20:00|1
2012/04/27 09:00:00|0
2012/04/28 10:00:00|1
2012/04/28 10:10:00|2
2012/04/28 10:20:00|0

2012/04/29 10:40:00|3
2012/04/29 11:30:00|1

この場合はwhere句は
  • convert関数を使って、時間カラムを時分秒に変換
  • betweenを使って時間帯を指定
することでデータ抽出ができます。

SQL文

select * from [hogehoge] 
where convert(varchar(20),[時間], 108) between '10:00:00' and '10:30:00'

注意点

この方法はSQL Server用ですので、OracleやMySQLなどでは使えないはずです。
考え方は同じですので、使っているデータベースにあわせてSQL文を変更してください。
スポンサーリンク

スポンサーリンク