日期范围 - 当日期保存为 varchar 格式时,检索日期范围内的值时出现问题:DD-MON-YY

问题描述 投票:0回答:1

在我无法控制的表中,我必须获取日期范围内的值。日期以 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 月的结果。我确信这是我知识中相对简单的差距,但我一直无法找到简单的解决方案,所以我们在这里。如果我找到解决方案,我会回复。

sql oracle to-date to-char
1个回答
0
投票

如果您想在某个日期范围内从表中查找值,请使用

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'

(注意:您可以在过滤器的右侧使用日期文字。)

© www.soinside.com 2019 - 2024. All rights reserved.