为什么我不能格式化 sql 日期?

why can not I format a sql date?

在下面的代码中,我无法将日期转换为给定的格式。为什么?

select sysdate,to_char('09/21/1990','ddth "of" mm yyyy') as formated
from emp;

错误信息:

ORA-01722: invalid number

to_char函数是将DATE类型转换为字符串。您的日期参数已经是一个字符串。如果你真的用字符串文字执行查询,你必须先将它转换为 DATE 类型,然后再转换为你需要的字符串格式,就像这样

select sysdate,
       to_char(to_date('09/21/1990','MM/DD/YYYY'),'ddth "of" mm yyyy')  as formated
from emp;