我无法弄清楚为什么这段代码不起作用。它有点倒退,这可能会让我感到困惑。
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 个代表,所以我无法回答我自己的帖子)