通常,我们将列名称作为TO_CHAR(sysdate, 'yyyy/mm/dd')
传递给TO_CHAR CLause。
我想知道我们是否可以在列名称的位置传递日期(TO_CHAR(04-28-2017, 'yyyy'))
答案 0 :(得分:1)
不,你不能因为TO_CHAR
函数需要数字或日期/时间值作为参数。这可以很容易地测试。
SQL> select to_char('12-04-2017','DD-MM-YYYY') from dual;
select to_char('12-04-2017','DD-MM-YYYY') from dual
*
ERROR at line 1:
ORA-01722: invalid number
您需要将字符串转换为日期。
SQL> select to_char(to_date('12-04-2017','DD-MM-YYYY'),'YYYY') from dual;
TO_C
----
2017
OR
SQL> select to_char(date '2017-04-12','YYYY') from dual;
TO_C
----
2017