ORA-01830: 日期格式图片在转换整个输入字符串之前结束
ORA-01830: date format picture ends before converting entire input string
能请教一下吗?
CREATE TABLE TEST2 (
JOB_NAME VARCHAR2(50) NULL,
RUNTIME NUMBER(22) NULL,
STARTTIME1 VARCHAR2(50) NULL,
ENDTIME1 VARCHAR2(50) NULL,
STARTTIME_READ DATE NULL,
ENDTIME_READ DATE NULL
)
GO
insert into TEST2 values ('TEST JOB',37,'08/18/2015 20:12:24','08/18/2015 20:13:01',null,null)
go
insert into TEST2 values ('TEST JOB',37,'08/18/2015 20:12:24','08/18/2015 20:13:01',null,null)
go
insert into TEST2 values ('TEST JOB',195,'08/20/2015 19:17:05','08/20/2015 19:20:20',null,null)
go
insert into TEST2 values ('TEST JOB',171,'08/19/2015 19:16:52','08/19/2015 19:19:43',null,null)
go
insert into TEST2 values ('TEST JOB',195,'08/21/2015 19:19:08','08/21/2015 19:22:23',null,null)
go
insert into TEST2 values ('TEST JOB',32,'08/24/2015 19:23:52','08/24/2015 19:24:24',null,null)
go
insert into TEST2 values ('TEST JOB',19,'08/26/2015 19:19:00','08/26/2015 19:19:19',null,null)
go
insert into TEST2 values ('TEST JOB',92,'08/25/2015 19:18:59','08/25/2015 19:20:31',null,null)
go
insert into TEST2 values ('TEST JOB',198,'08/27/2015 19:29:58','08/27/2015 19:33:16',null,null)
go
insert into TEST2 values ('TEST JOB',19,'08/28/2015 19:18:13','08/28/2015 19:18:32',null,null)
go
insert into TEST2 values ('TEST JOB',44,'08/31/2015 19:49:22','08/31/2015 19:50:06',null,null)
go
insert into TEST2 values ('TEST JOB',266,'09/11/2015 19:17:10','09/01/2015 19:21:36',null,null)
go
insert into TEST2 values ('TEST JOB',18,'09/20/2015 19:17:33','09/02/2015 19:17:51',null,null)
go
insert into TEST2 values ('TEST JOB',33,'09/22/2015 19:16:50','09/03/2015 19:17:23',null,null)
go
insert into TEST2 values ('TEST JOB',170,'08/17/2015 19:18:07','08/17/2015 19:20:57
查询:
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
错误:
ORA-01830: date format picture ends before converting entire input string
它正在处理 table 中的一些记录。这些日期与上面的完全一样。我不明白这种日期格式有什么问题
注意:我使用的是oracle 8i
你之所以这样看你的约会对象,是因为你正在转换它。
实际格式是这样的'yyyy-mm-dd'
所以您的查询应该是:
insert into TEST2 values ('TEST JOB',33,'2015-09-22 19:16:50','2015-09-03 19:17:23',null,null)
我想这就是您要找的
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 来解决这个问题。
试试这个。你有几个问题。 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
能请教一下吗?
CREATE TABLE TEST2 (
JOB_NAME VARCHAR2(50) NULL,
RUNTIME NUMBER(22) NULL,
STARTTIME1 VARCHAR2(50) NULL,
ENDTIME1 VARCHAR2(50) NULL,
STARTTIME_READ DATE NULL,
ENDTIME_READ DATE NULL
)
GO
insert into TEST2 values ('TEST JOB',37,'08/18/2015 20:12:24','08/18/2015 20:13:01',null,null)
go
insert into TEST2 values ('TEST JOB',37,'08/18/2015 20:12:24','08/18/2015 20:13:01',null,null)
go
insert into TEST2 values ('TEST JOB',195,'08/20/2015 19:17:05','08/20/2015 19:20:20',null,null)
go
insert into TEST2 values ('TEST JOB',171,'08/19/2015 19:16:52','08/19/2015 19:19:43',null,null)
go
insert into TEST2 values ('TEST JOB',195,'08/21/2015 19:19:08','08/21/2015 19:22:23',null,null)
go
insert into TEST2 values ('TEST JOB',32,'08/24/2015 19:23:52','08/24/2015 19:24:24',null,null)
go
insert into TEST2 values ('TEST JOB',19,'08/26/2015 19:19:00','08/26/2015 19:19:19',null,null)
go
insert into TEST2 values ('TEST JOB',92,'08/25/2015 19:18:59','08/25/2015 19:20:31',null,null)
go
insert into TEST2 values ('TEST JOB',198,'08/27/2015 19:29:58','08/27/2015 19:33:16',null,null)
go
insert into TEST2 values ('TEST JOB',19,'08/28/2015 19:18:13','08/28/2015 19:18:32',null,null)
go
insert into TEST2 values ('TEST JOB',44,'08/31/2015 19:49:22','08/31/2015 19:50:06',null,null)
go
insert into TEST2 values ('TEST JOB',266,'09/11/2015 19:17:10','09/01/2015 19:21:36',null,null)
go
insert into TEST2 values ('TEST JOB',18,'09/20/2015 19:17:33','09/02/2015 19:17:51',null,null)
go
insert into TEST2 values ('TEST JOB',33,'09/22/2015 19:16:50','09/03/2015 19:17:23',null,null)
go
insert into TEST2 values ('TEST JOB',170,'08/17/2015 19:18:07','08/17/2015 19:20:57
查询:
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
错误:
ORA-01830: date format picture ends before converting entire input string
它正在处理 table 中的一些记录。这些日期与上面的完全一样。我不明白这种日期格式有什么问题
注意:我使用的是oracle 8i
你之所以这样看你的约会对象,是因为你正在转换它。
实际格式是这样的'yyyy-mm-dd'
所以您的查询应该是:
insert into TEST2 values ('TEST JOB',33,'2015-09-22 19:16:50','2015-09-03 19:17:23',null,null)
我想这就是您要找的
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 来解决这个问题。
试试这个。你有几个问题。 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