1

我正在使用 oracle 表来提取数据。在其中一个查询中,我使用“where”在日期之间进行过滤。

To_Date(VDATU,'DD-MON-YYYY') >= '03-Jun-2012'
AND To_Date(VDATU,'dd-mon-yy') <= '04-Sep-2012'

我收到错误,

ORA-01861: literal does not match format string

我尝试使用 ('dd-mm-yy') 但仍然给出相同的错误。可能有什么问题?

4

2 回答 2

2

您正在将 aDATE与 a进行比较String,请尝试:

To_Date(VDATU,'DD-MON-YYYY') >= To_Date('03-JUN-2012','DD-MON-YYYY')
AND To_Date(VDATU,'dd-mon-yy') <= To_Date('04-SEP-2012','DD-MON-YYYY')

如果VDATU已经是一个日期,你不应该转换它to_date,你所要做的就是:

VDATU >= To_Date('03-JUN-2012','DD-MON-YYYY')
AND VDATU <= To_Date('04-SEP-2012','DD-MON-YYYY')
于 2012-09-04T02:17:37.197 回答
2

您正在尝试将VDATU(大概是 a VARCHAR2)转换为日期。

在一个地方你有DD-MON-YYYY,在另一个地方你有dd-mon-yy

哪一个? VDATU不能对两者都有效。

于 2012-09-04T02:23:26.140 回答