oracle数据库中字段默认取系统当前的时间

如题所述

1、select sysdate from dual;          获取系统当前时间。

2、select sysdate-5 from dual;       获取系统当前时间减五天(相当于五天前)。

3、select sysdate-5/24 from dual;  获取系统当前时间减五小时(五小时前)。

4、找出今年的天数select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual;。

5、一年的第几天,select to_char(sysdate,'ddd'),sysdate from dual;。

6、计算小时,分,秒,毫秒select days,r,trunc(r*24) Hours,      trunc(r*24*60 - 60*trunc(r*24)) Minutes,      trunc(r*24*60*60 - 60*trunc(r*24*60)) Seconds。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-09

1、获取系统当前时间

date类型的:

select sysdate  from dual; 

2、char类型的:

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 

3、ORACLE里获取一个时间的年、季、月、周、日的函数

select  to_char(sysdate, 'yyyy' )  from dual; --年 

select  to_char(sysdate, 'MM' )  from dual; --月 

select  to_char(sysdate, 'dd' )  from dual; --日 

select  to_char(sysdate, 'Q')  from dual; --季 

select  to_char(sysdate, 'iw')  from dual; --周--按日历上的那种,每年有52或者53周

4、日期操作

   当前时间减去7分钟的时间 

   select   sysdate,sysdate - interval '7' MINUTE  from  dual; 

  当前时间减去7小时的时间 

   select   sysdate - interval '7' hour  from dual; 

  当前时间减去7天的时间 

   select   sysdate - interval '7' day  from dual; 

  当前时间减去7月的时间 

   select   sysdate,sysdate - interval '7' month  from dual; 

  当前时间减去7年的时间 

   select   sysdate,sysdate - interval '7' year  from dual; 

  时间间隔乘以一个数字 

   select   sysdate,sysdate - 8*interval '7' hour  from dual; 

本回答被网友采纳
第2个回答  2017-07-05

分两种情况,一种是创建表时自动创建带有默认值的字段,一种是把没有默认值的字段设置为有默认值的字段。
第一种情况:
create table test
(id int,
starttime date default sysdate not null );


插入测试数据:
insert into test (id) values (1);
commit;


验证结果:


第二种情况,比如在test表中加一个endtime,时间也要求是系统默认时间。

添加字段且不设置默认值:
alter table test add endtime date;


添加默认值语句:

alter table test modify endtime default sysdate;


测试语句:

insert into test (id) values (2);
commit;


验证结果:

本回答被提问者采纳
第3个回答  2017-07-05
.想自动加有两种方法)使用sequence,每次插入时显式的写xx.nextvalcreate