人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLについて質問です。

以下の列で構成されるテーブルがあります。(全列varchar型)
(1).日付 'yyyy/MM/dd'
(2).時刻 'HH:mm:ss'
(3).コメント

このテーブルに対し、
検索条件 [日付From],[時刻From],[日付To],[時刻To] を指定して
日時範囲を検索(SELECT)する場合の、WHERE句の書き方を教えて下さい。

SQLServer・Oracle どちらでもOKです。

●質問者: litetuna
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DD MM Oracle SELECT SQL
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● きゃづみぃ
●18ポイント

http://www.techscore.com/tech/sql/05_05.html

BETWEEN を使います。


WHERE '2006/06/28' BETWEEN [日付From] AND [日付To]

AND '10:00' BETWEEN [時刻From] AND [時刻To]


2 ●
●17ポイント

Oracleを前提に考えてみました。

(現在、試す環境がないので、上手く動かなかったら申し訳ありません。)

TO_DATEでDATE型に変換して、BETWEENで比較をすれば良いと思います。

(1)の日付の列->col1

(2)の時刻の列->col2

[日付From]->date_from

[時刻From]->time_from

[日付To]->date_to

[時刻To]->time_to

とした例です。

(日付と時刻を半角スペースを1つ挟んで結合した文字列を比較の対象としています。)

SELECT *
FROM table
WHERE TO_DATE(col1||' '||col2,'YYYY/MM/DD HH24:MI:SS') BETWEEN TO_DATE(date_from||' '||time_from,'YYYY/MM/DD HH24:MI:SS') AND TO_DATE(date_to||' '||time_to,'YYYY/MM/DD HH24:MI:SS')

BETWEENでは両端に一致する行も選択対象になりますので、「?より大きい」、「?未満」という比較を行いたい場合、大なり記号、小なり記号を使う比較に書き換えてください。

[参考URL]

参考になれば幸いです。


3 ● Sampo
●17ポイント

takntさんのだと、日付が範囲内で、かつ時刻も範囲内という条件を指定していることになりますね。

それがお望みであれば構わないのですが、指定日付時刻以降、指定日付時刻まで、であれば

WHERE 日付+時刻 BETWEEN "[日付From]"+"[時刻From]" AND "[日付To]"+"[時刻To]"

とします。

http://q.hatena.ne.jp/1151494031

◎質問者からの返答

「指定日付時刻 ? 指定日付時刻」が希望です。

「'2006/05/01 00:00:00' ? '2006/05/02 00:00:00'」の場合、

[2006/05/01]分のデータ全てと[2006/05/02 00:00:00]のデータが取れればベストです。


4 ● vector
●17ポイント

varchar型ですから1の回答では無理です。


Oracleの場合ですが。。。

TO_DATE(日付 || 時刻, 'YYYY/MM/DDHH24:MI:SS') BETWEEN TO_DATE(日付From || 時刻From, 'YYYY/MM/DDHH24:MI:SS') AND TO_DATE(日付To || 時刻To, 'YYYY/MM/DDHH24:MI:SS')


もしかしたら日付と時刻の間にブランクがないといけないかもしれません。

http://www.mitene.or.jp/~rnk/TIPS_ORCL_FUNC2.htm#FUNC2


5 ● きゃづみぃ
●17ポイント

CREATE TABLE SOCIA.TESTTABLE

(

ADAY VARCHAR2(10),

ATIME VARCHAR2(10),

DAT1 VARCHAR2(10)

)

select * from TESTTABLE

where

ADAY || ATIME BETWEEN '2005/01/04' || '10:00:00' and '2005/01/07' || '11:00:00'

でOKですね。

http://www.atmarkit.co.jp/fnetwork/rensai/sql01/sql1.html


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ