在我无法控制的表中,我必须获取日期范围内的值。日期以 dd-mon-yy 的奇怪格式保存为 varchar,例如24 年 1 月 1 日。
我尝试过 TRUNC、TO_DATE、TO_CHAR 的组合,但没有运气。任何帮助将不胜感激。例如,目前,
BETWEEN TO_DATE(‘02-Oct-23’, 'dd-mon-rr') AND TO_DATE(‘14-Jan-24’, 'dd-mon-rr’)
正在发送 2023 年 1 月的结果。我确信这是我知识中相对简单的差距,但我一直无法找到简单的解决方案,所以我们在这里。如果我找到解决方案,我会回复。
如果您想在某个日期范围内从表中查找值,请使用
VARCHAR2
过滤器左侧的 DATE
将列值从 TO_DATE
转换为 BETWEEN
:
SELECT *
FROM table_name
WHERE TO_DATE(date_string, 'DD-MON-RR', 'NLS_DATE_LANGUAGE=English')
BETWEEN DATE '2023-10-02' AND DATE '2024-01-14'
(注意:您可以在过滤器的右侧使用日期文字。)