sql - Oracle Column Based on Another Column -
i'm using oracle table. let's pretend have simple table has names , datetimestamps:
name time --- --- joe 01jan1970:00:00:01 jane 04mar2010:20:55:11 julie 22dec1984:11:11:11
i want add third column. let's call date. want truncate off time.
name time date --- --- --- joe 01jan1970:00:00:01 01jan1970 jane 04mar2010:20:55:11 04mar2010 julie 22dec1984:11:11:11 22dec1984
that accomplished enough update. trick is, if updates julie's time, want date automatically update well:
name time date --- --- --- joe 01jan1970:00:00:01 01jan1970 jane 04mar2010:20:55:11 04mar2010 julie 02oct1999:22:22:22 02oct1999
is there simple way accomplish oracle 11g? can set trigger update column in row when column changes?
edit: clarity in example
i second jesse's advice use view returns whatever want.
however, if want stored (e.g. in order create index on it), can use virtual column:
create table foo ( name varchar(50) not null, time timestamp not null, plain_date generated (to_char(time, 'yyyy-mm-dd')) );
as alternative can use trunc(time)
still have time part in - set 00:00:00
. using to_char()
ensures date in desired format.
here little sqlfiddle: http://sqlfiddle.com/#!4/a7f55/2
Comments
Post a Comment