このコードが機能しない理由がわかりません。それは少し後ろ向きで、私を混乱させるかもしれません。
SELECT * FROM
(
SELECT
TO_CHAR(FTPRITIN.start_date, 'DD-MON-YY') start_date,
TO_CHAR(FTPRITIN.end_date, 'DD-MON-YY') end_date
FROM ftpritin
)
WHERE :VARIABLE BETWEEN start_date AND end_date
私も試してみました
SELECT * FROM
(
SELECT
TO_CHAR(FTPRITIN.start_date, 'DD-MON-YY') start_date,
TO_CHAR(FTPRITIN.end_date, 'DD-MON-YY') end_date
FROM ftpritin
)
WHERE start_date > :VARIABLE AND end_date < :VARIABLE
しかし、うまくいかないようです。クエリは実行されますが、範囲外のデータが完全に取得されます。
必要なのは、変数が start_date と end_date の間にあるデータ行を取得することです。何か案は?どんな助けでも大歓迎です。
答え
参考までに - なぜこんなに簡単な問題が難しいのかと思っている方 - または同じような問題を抱えている方...
フィールドはTIMESTAMPであり、日付フィールドではありませんでした。実行してこれを理解しました
DESC table_name
それから私はそれを修正するために簡単な substr to_date をしました
to_date(substr(start_date, 1, 9))
これにより、日付でフィルタリングできました
WHERE to_date(substr(start_date, 1, 9)) <= to_date(:VARIABLE, 'DD-MON-YY')...
みんな助けてくれてありがとう。
(担当者が 10 人未満なので、自分の投稿に答えることができません)