在To_Char中获取日期格式错误

时间:2015-10-27 14:20:17

标签: oracle date to-char sysdate sysdatetime

我在第二个脚本中遇到错误。请解释为什么我在第二个脚本中收到错误。

  
    

从LCL_SHR_IncidentIntegrationInt中选择count(*)     externalsystem =' IPSOFT'     和(to_char(sysdate,' YYYYMMDDHH24MISS ') - to_char(fn_adjusted_date(CREATE_DATE),' YYYYMMDDHH24MISS '))&gt ; 180;

         

O / P:122797

         

从LCL_SHR_IncidentIntegrationInt中选择count(*)     externalsystem =' IPSOFT'     和(to_char(sysdate,' DD-MM-YYYY HH24:MI:SS ') - to_char(fn_adjusted_date(CREATE_DATE),' DD-MM -YYYY HH24:MI:SS '))> 180;

         

O / P: ORA-01722:无效的号码     01722. 00000 - "无效数字"     *原因:指定的号码无效。     *操作:指定有效数字。

  

1 个答案:

答案 0 :(得分:2)

第一个查询有效,因为Oracle能够隐式地将字符转换为数字并与180进行比较。另一个查询不能,因为:和 - 不能隐式转换为数字。 对于timestampdiffdatediff等情况,您应该使用日期和时间函数。这里有更多功能 - https://docs.oracle.com/cd/E17952_01/refman-5.1-en/date-and-time-functions.html