【发布时间】:2014-02-05 02:10:50
【问题描述】:
我在尝试从按日期过滤的表中选择数据时遇到问题。
例如:
SELECT * FROM MYTABLE WHERE MYTABLE.DATEIN = '23/04/49';
Oracle 错误是:
Informe de error: Error SQL: ORA-01843: mes no válido 01843. 00000 - "not a valid month" *Cause: *Action:
可能是表的源数据损坏了,在这种情况下:
- 我该如何解决这个问题?
- 我可以将此日期更改为空吗?
这次选择的结果,select * from nls_session_parameters;,是:
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPAIN
NLS_CURRENCY ¿
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY ¿
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
【问题讨论】:
-
日期的使用格式似乎是美国格式:'月/日/年',所以第 23 个月是错误的。尝试使用“04/23/49”
-
日期的格式是'DD/MM/YY',如果尝试改变'MM/DD/YY'的格式也是一样的。