oracle——时间

时间数据

1. 插入时间数据

  • 插入语法
命令:insert into floor values (to_date('年-月-日 时:分:秒','YYYY-MM-DD HH24:MI:SS'));


  • 完整的时间插入
insert into floor values (to_date('2010-07-12 09:10:12','YYYY-MM-DD HH24:MI:SS'));

查询显示:2010-07-12 09:10:12.0

  • 缺少秒
insert into floor values (to_date('2010-07-12 09:10','YYYY-MM-DD HH24:MI'));

查询显示:2010-07-12 09:10:00.0

  • 缺少分
insert into floor values (to_date('2010-07-12 09','YYYY-MM-DD HH24'));

查询显示:2010-07-12 09:00:00.0

  • 当省略了HH、MI、SS 对应的参数时,oracle会使用0作为其默认值。即取整到当前日。
insert into floor values (to_date('2010-07-12','YYYY-MM-DD'));

查询显示:2010-07-12 00:00:00.0

  • 如果输入的时间忽略 日DD ,oracle会 01 作为日的默认值,即取整到月。
insert into floor values (to_date('2010-07','YYYY-MM'));

显示时间:2010-07-01 00:00:00.0

  • 如果输入的时间忽略 月MM,oracle不会取整到年,而是取整到当前月。
insert into floor values (to_date('2010','YYYY'));

查询显示:2010-06-01 00:00:00.0


2、特殊时间处理

  • 时间查询延迟


  • 在系统的时间基础上延迟五秒
sysdate+(5/24/60/60);


  • 在系统时间基础上延迟五分钟
sysdate+(5/24/60);


  • 在系统的时间基础上延迟五小时
sysdate+5/24;


  • 在系统时间基础上延迟五天
sysdate+5;


  • 在系统时间基础上延迟五月
add_months(sysdate,-5);


  • 在系统时间基础上延迟五年
add_months(sysdate,-5^12);




  • 上月月末的时间
select last_day(add_months(sysdate,-1)) from tablename;


  • 本月的最后一秒
select trunc(add_months(sysdate,1),'MM')-1/24/60/60 from dual;


  • 本周星期一的日期
select trunc(sysdate,'day')+1 from dual;


  • 年初,至今的天数
select ceil(sysdate-trunc(sysdate,'year')) from dual;


  • 今天是今年的第几周
select to_char(sysdate,'fmww') from dual;


  • 今天是本月的第几周
select to_char(sysdate,'ww')-to_char(trunc(sysdate,'MM'),'ww')+1 as 'weekOfMon' from dual;


  • 当前月的天数
select to_char(last_day(sysdate,'dd'),days) from dual;


  • 今年的天数
select * add_months(trunc(sysdate,'year'),12)-trunc(sysdate,'year') from dual;


  • 下个星期一的日期
select next_day(sysdate,'monday') from dual;


  • 判断当前时间是上午下午还是晚上
select case 
    when to_number(to_char(sysdate,'hh24')) between 6 and 11 then '上午';
    when to_number(to_char(sysdate,'hh24')) between 11 and 17 then '下午';
    when to_number(to_char(sysdate,'hh24')) (between 17 and 23) and (between 0 and 6) then '晚上';
end 
from dual;

你可能感兴趣的:(oracle——时间)