【发布时间】:2020-05-23 15:24:36
【问题描述】:
我正在使用 oracle 11G,我知道 TO_CHAR 用于将数据转换为字符,此查询将完美地获取特定日期的日期:
SELECT TO_CHAR (DATE '2019-08-15', 'Day') FROM DUAL;
但这行不通:
SELECT TO_CHAR (DATE '15-08-2019', 'Day') FROM DUAL;
错误:ORA-01847:一个月中的某天必须介于 1 和该月的最后一天之间
SELECT TO_CHAR (DATE '15-aug-19', 'Day') FROM DUAL;
错误:ORA-01843:不是有效月份
为什么以上行不通。我检查了 NLS_DATE_FORMAT 它显示“DD-MON-RR”。但在第一个查询中,它是“YYYY-MM-DD”。
我在这里错过了什么?
【问题讨论】:
-
这是因为语法中的“撇号”,我已经编辑它现在可以工作了
-
查看date literals 的 SQL 手册。当您在那里时,请注意其他信息,例如时间戳和时间间隔。