我正在使用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')但仍然会出现同样的错误。可能是什么问题??
答案 0 :(得分:2)
您要将DATE
与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')
答案 1 :(得分:2)
您正在尝试将VDATU
(可能是VARCHAR2
)转换为日期。
在一个地方,您拥有DD-MON-YYYY
,而在另一个地方,您拥有dd-mon-yy
。
是哪一个? VDATU
对两者都无效。