我正在使用 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') 但仍然给出相同的错误。可能有什么问题?
您正在将 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')
您正在尝试将VDATU
(大概是 a VARCHAR2
)转换为日期。
在一个地方你有DD-MON-YYYY
,在另一个地方你有dd-mon-yy
。
哪一个? VDATU
不能对两者都有效。