Oracle 数据库 触发器 日期保存格式问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 数据库 触发器 日期保存格式问题!相关的知识,希望对你有一定的参考价值。
--创建一张表
create table emp2_log
(
uname varchar2(20), --记录执行的人
action varchar2(10), --记录执行的操作
atime date --记录执行的时间
);
--创建一个触发器
create or replace trigger trig
after insert or delete or update on emp2 for each row
begin
if inserting then
insert into emp2_log values(USER,'insert','YYYY-MM-DD HH:MI:SS');
elsif updating then
insert into emp2_log values(USER,'update','YYYY-MM-DD HH:MI:SS');
elsif deleting then
insert into emp2_log values(USER,'datele','YYYY-MM-DD HH:MI:SS');
end if;
end;
---执行操作
update emp2 set sal=sal*2 where deptno=30;
(这个时候发生报错,在('YYYY-MM-DD HH:MI:SS')填写sysdate 是可以正常的,
我想换个记录时间的格式.)
to_char(sysdate,'YYYY-MM-DD HH:MI:SS')
insert into emp2_log values(USER,'update',to_char(sysdate,'YYYY-MM-DD HH:MI:SS'));
如果不用改,直接插入当前时间sysdate
在读出数据的时候用select col1,col2, to_chat(col3) from yourTable; 参考技术A 'YYYY-MM-DD HH:MI:SS'是一个字符串,根本也不是个日期型追问
UNAME ACTION ATIME
-------------------- ---------- ------------
SCOTT update 18-7月 -11
我是想把上面记录的时间格式,精确到小时,分,秒
2011年,7月18日 12:00 :34 这样的格式
如何让Oracle识别英文日期格式
学习Oracle时做练习,需要插入的表中有date类型的值比如'21-Jun-04',执行语句后报了这个错误ORA-01843: 无效的月份
之后作了修改alter session set nls_date_format='DD-MON-YY'还是报同样的错误
又作了修改alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
结果又报错误ORA-01858: 在要求输入数字处找到非数字字符
我也知道把sql语句里的英文月份改成中文的就行了,但我不想这样,因为我用的是sql脚本,一改一大堆太麻烦了,问问各位高手有没有解决办法啊?
少了个:,在dd和hh中
以上是关于Oracle 数据库 触发器 日期保存格式问题!的主要内容,如果未能解决你的问题,请参考以下文章
创建触发器以保存oracle中表的CONSTRAINTs更改