質問: 時間の抽出条件 業務で開発中、どうしてもわからなかったので質問させていただきます。 あるテーブルから「データを抽出する日の14時までにできたデータのみを抽出する」というsqlですが、 データを抽出する日→sysdateでyyyymmddまでを取得する考えです。 このあとの14:00:00という条件をつけるsqlの書き方がわかりません。 このような書き方ではだめでしょうか? select * from t_test where dataymd < to_char(sysdate '14:00:00','yyyymmdd hh24:mi:ss'); dataymdはchar型で8バイトで入っています。 よろしくお願いいたします。
回答: >dataymdはchar型で8バイトで入っています。 ということは、yyyymmdd(年月日)しか入っていないということですか? だとしたらそのデータが何時(なんじ)にできたものなのか判断できないと思うのですが。 dataymdがdate型ならば、 select * from t_test where to_char(dataymd, 'yyyymmddhh24') < to_char(sysdate, 'yyyymmdd') || '14' でできると思います。 (もうちょっとスマートなやり方もあるかもしれませんが)