oracle——时间

时间数据

1. 插入时间数据

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

</br>

  • 完整的时间插入
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
</br>

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

查询显示:2010-07-12 09:10:00.0
</br>

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

查询显示:2010-07-12 09:00:00.0
</br>

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

查询显示:2010-07-12 00:00:00.0
</br>

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

显示时间:2010-07-01 00:00:00.0
</br>

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

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

</br>

2、特殊时间处理

  • 时间查询延迟

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>


</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

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

</br>

  • 判断当前时间是上午下午还是晚上
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日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year:...
    雨一流阅读 692评论 0 2
  • 转载blog.csdn.net/haiross/article/details/12837033 TRUNC函数用...
    forever_smile阅读 4,870评论 0 1
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,853评论 0 2
  • 遇到的问题也很简单:表1是一个统计信息表,每小时整点的时候统计一次,历史统计的数据不删除,统计时间字段为creat...
    会点代码的大叔阅读 764评论 0 1
  • 神知道----小说原创据说李家村小学原是李家族人的家庙,听说学校正北漏风漏雨的三间瓦房大殿是族人去世后停放死尸的地...
    东原郡人阅读 246评论 0 0