好きな「お肉」は?

環境 OS:WindowsXP Office:Excel2003

ExcelのVBAで、以下のケースのSQL文はどのように書けばよろしいでしょうか?

DB:Oracle
テーブル:利用記録
やりたいこと:退室時刻と入室時刻の差分(利用時間)が60分以内のレコードを抽出したい
※入室時刻・退室時刻共に"yyyy/mm/dd hh:nn:ss"形式
Datediff関数は使えないようです(コンパイルエラーとなる)。

ちなみに、以下のように記述してみたのですがあっていますでしょうか?
"AND ((退室時刻 - 入出時刻) * 24) <= 1 " & _

よろしくお願いします。

A 回答 (1件)

>入室時刻・退室時刻共に"yyyy/mm/dd hh:nn:ss"形式


入室時刻・退室時刻はオラクルの項目でDateのシリアル値ですか。
もしSQL文内で宣言した項目 "yyyy/mm/dd hh:nn:ss"形式に
変換してるなら TEXTになるので"AND ((退室時刻 - 入出時刻) * 24) <= 1 "の
演算条件設定なりたたなくなりますけどいかかがでしょう。
オラクルの項目でDateなら 記載されている条件でいけると思いますよ。

ここから余談
SQL文内で演算させた結果に対して、条件をつけるのは典型的な実行が遅くなる作りですよ。
あらかじめ計算させた項目もっておいたほうがいいように思えます。

すいません ご存知でしたら読み捨ててください。
    • good
    • 0
この回答へのお礼

入室時刻・退室時刻共に[日付/時刻]型です←テーブルをデザインモードで確認しました(Accessでリンクをはって)。
というわけで、間違ってはいないということですよね???

余談以下も参考になります。
確かにそうですね、しかしDBは既に稼働中のもので私にはデザインする権限も技術もなく……。

ありがとうございました!

お礼日時:2007/09/13 09:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報