ORACLE自動插入當前時間

2021-05-11 16:59:20 字數 1512 閱讀 6222

oracle沒有date()函式,sysdate函式的值是包括時分秒的,要實現插入當前時間預設值還真麻煩.

只好自己寫儲存過程,而字段預設值裡面又不能呼叫儲存過程,還得寫個觸發器!而儲存過程裡面取出來的sysdate前幾位的只卻變成17-11月-07的格式了,不是自己想要的,2007-11-17的格式,又得單獨取年月日再組合起來,這樣一來返回值就不能是日期型別而要字元型別了.

乙個字,煩!不過還是把他實現了.下面把**給大家分享一下,如果有更好的方法麻煩告知.

1.儲存過程

create or replace function "get_date" return varchar2

isyyyy     varchar2(36);

mm     varchar2(36);

dd     varchar2(36);

tempdate   varchar2(36);

begin

tempdate := '';

select to_char(to_date(sysdate),'yyyy') into yyyy from dual;

select to_char(to_date(sysdate),'mm') into mm from dual;

select to_char(to_date(sysdate),'dd') into dd from dual;

tempdate := substr(yyyy,1,4)|| '-'||

substr(mm,1,2)|| '-'||

substr(dd,1,2)

;return tempdate;

end;

2.觸發器

create or replace trigger statweek_tg

--statweek fdate 的觸發器

before insert on statweek for each row

begin

select get_date into :new.fdate from dual;

end;

注:這裡的statweek為對應的資料表 fdate為自動增長的字段,get_date為對應的儲存過程名.

3.資料表

-- create table

create table statweek

(星期一   varchar2(20) default 0,

星期二   varchar2(20) default 0,

星期三   varchar2(20) default 0,

星期四   varchar2(20) default 0,

星期五   varchar2(20) default 0,

星期六   varchar2(20) default 0,

星期日   varchar2(20) default 0,

tweek varchar2(10),

admin varchar2(50),

fdate varchar2(20)

)

oracle插入,更新自動設定當前時間

1.建表語句create table userinfo id varchar2 32 not null primary key,name varchar2 200 age int create time date default sysdate,modify time date default sy...

mysql插入當前時間

b now b 函式以 b yyyy mm dd hh mm ss b 返回當前的日期時間,可以直接存到d b atetime b 欄位中。b curdate b 以 b yyyy mm dd b 的格式返回今天的日期,可以直接存到 b date b 欄位中。b curtime b 以 b hh m...

mysql 插入當前時間

now 函式以 yyyy mm dd hh mm ss返回當前的日期時間,可以直接存到datetime欄位中。curdate 以 yyyy mm dd 的格式返回今天的日期,可以直接存到date欄位中。curtime 以 hh mm ss 的格式返回當前的時間,可以直接存到time欄位中。例 cre...