ORA-01830:日期格式图片在转换整个输入字符串之前结束

时间:2015-09-16 18:47:59

标签: sql oracle oracle8i

你可以就此提出建议吗?

select job_name,to_char(to_date(avg(to_number(to_char(to_date(starttime1,'mm/dd/yyyy hh24:mi:ss'),'SSSSS'))),'SSSSS'),'HH24:MI:SS')AVG_STARTIME
 from TEST2 group by job_name 

查询:

//Start threadppol
            ExecutorService imageExecutorService = null;
            List<Future<ImageModel>> futureImages = null;
            if (imageSize > 0) {
                imageExecutorService = Executors.newFixedThreadPool(4);
                futureImages = new ArrayList<>();
                int counter=0;
                for (Image imgUrl : imgUrls) {
                    Callable<ImageModel> callable = new ExtractImages(imgUrl,hostUrl);
                    Future<ImageModel> future = imageExecutorService.submit(callable);
                    futureImages.add(future);
                    if(counter>=4){
                        break;
                    }
                    counter++;
                }
            }

错误:

  

ORA-01830:日期格式图片在转换整个输入字符串之前结束

它适用于表格中的一些记录。这些日期完全如上所述。我没有得到这种日期格式的错误

注意:我使用的是oracle 8i

3 个答案:

答案 0 :(得分:2)

我认为这就是你要找的东西

select job_name,to_char(
  to_date(
    TRUNC(avg(
      to_number(
        to_char(
          to_date(starttime1,'mm/dd/yyyy hh24:mi:ss'),
          'SSSSS')
      )
    )),'SSSSS'),'HH24:MI:SS')AVG_STARTIME
 from TEST2 group by job_name 

该平均值返回带小数的数字。只需使用TRUNC来修复它。

sqlfiddle

答案 1 :(得分:1)

试试这个。你有几个问题。 to_number的格式掩码应该是'99999'而不是'SSSSS'并且avg函数的结果不是整数,所以to_date不起作用。圆了价值。

    SELECT job_name,
      TO_CHAR(to_date(ROUND(AVG(to_number(TO_CHAR(to_date(starttime1,'mm/dd/yyyy hh24:mi:ss'),
'SSSSS'),'99999')),0),'SSSSS'),'HH24:MI:SS')AVG_STARTIME
    FROM TEST2
    GROUP BY job_name

答案 2 :(得分:0)

你只是看到了你的约会对象,因为你正在转出它。

实际格式看起来像'yyyy-mm-dd'

所以你的查询应该是:

insert into TEST2 values ('TEST JOB',33,'2015-09-22 19:16:50','2015-09-03 19:17:23',null,null)