我有这个错误:
ORA-01861: literal does not match format string
01861. 00000 - "literal does not match format string"
*Cause: Literals in the input must be the same length as literals in
the format string (with the exception of leading whitespace). If the
"FX" modifier has been toggled on, the literal must match exactly,
with no extra whitespace.
*Action: Correct the format string to match the literal.
它在一夜之间发生,数据库配置没有任何变化。sysdate 格式似乎有问题,但我不是 100% 确定。在我们的程序中有很多我们使用的地方to_date(to_char(sysdate, 'YYYY-MM-DD')) from dual
实际上会中断。有没有办法格式化 sysdate 以匹配以下表达式?
to_date(to_char(sysdate, 'YYYY-MM-DD')) from dual
首先将 sysdate 转换为 char 类型,然后在不指定格式字符串的情况下将其转换回日期类型,根据运行此代码的会话的设置,这可能会或可能不会起作用。
这完全没有必要,只需使用
trunc(sysdate)
删除小时、分钟和秒即可。此外,如果您返回日期类型,则格式取决于
nls_date_format
变量,而不是生成日期值的 SQL。