我想在日志表中添加分钟和秒的时间,我使用的是SYSDATE,但它不存储分钟和秒:
SYS_DATE TIMESTAMP;
SYS_DATE :=TO_DATE(''||SYSTIMESTAMP()||'','DD-MM-YYYY HH24:MI:SS');
INSERT INTO _LOGTB(PROCESS_NAME,TYPE,START_DATE,END_DATE,NUM_OF_COUNT) VALUES
(''PROCEDUREEEE'',''INSERT'','''||SYS_DATE||''','''','132111')';
commit;
我收到此错误:
ORA-01830:日期格式图片在转换整个输入字符串之前结束
我使用sysdate()
答案 0 :(得分:4)
我很抱歉,但事实并非如此。 Sysdate包含分钟和秒。由于您的日期时间系统格式,您可能看不到它。
下一步
我看到你使用像动态sql这样的东西。并且可能在另一个地方出错。
下一步
如果使用数据类型时间戳,则无需将systimestamp转换为时间戳。它已经完成了。此外它的奇怪转换它到目前为止。如果您需要时间戳,请使用next。
SYS_DATE := SYSTIMESTAMP();
我的下一个假设是你的表_LOGTB包含带有date
的START_DATE,END_DATE列 - 数据类型。如果是这样,你可以插入sysdate,一切都没问题。
INSERT INTO _LOGTB(PROCESS_NAME,TYPE,START_DATE,END_DATE,NUM_OF_COUNT) VALUES
('PROCEDUREEEE','INSERT',SYSDATE,null,132111);
至少。您可以通过下一个查询检查您的表中是否包含有关分钟和秒的信息:
select to_char(START_DATE,'YYYY-MM-DD HH24:MI:SS') from _LOGTB;
答案 1 :(得分:1)
尝试更简单的事情......
insert into _LOGTB (PROCESS_NAME,TYPE,START_DATE,END_DATE,NUM_OF_COUNT)
values
('PROCEDUREEEE', 'INSERT', to_char(sysdate, 'DD-MM-YYYY HH24:MI:SS'), '', 132111)
答案 2 :(得分:1)
SYSDATE始终包含oracle中的时间信息。如果您使用的是sql developer,请尝试按照建议的in this post
更改首选项中的日期格式设置