1获取系统的当前时间
date类型的:
selectsysdatefromdual;
2char类型的:
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss')fromdual;
3函数在ORACLE中获取年、季度、月、周、日的时间
selectto_char(sysdate,'yyyy')fromdual;--年
selectto_char(sysdate,'MM')fromdual;--月
selectto_char(sysdate,'dd')fromdual;--日
selectto_char(sysdate,'Q')fromdual;--季
selectto_char(sysdate,'iw')fromdual;--周--按日历上的那种,每年有52或者53周
4日期 *** 作,如下图
当前时间减去7分钟的时间
selectsysdate,sysdate-interval'7'MINUTEfromdual;
当前时间减去7小时的时间
selectsysdate-interval'7'hourfromdual;
当前时间减去7天的时间
selectsysdate-interval'7'dayfromdual;
当前时间减去7月的时间
selectsysdate,sysdate-interval'7'monthfromdual;
当前时间减去7年的时间
selectsysdate,sysdate-interval'7'yearfromdual;
时间间隔乘以一个数字
selectsysdate,sysdate-8interval'7'hourfromdual;
以2015年12月1日至2015年12月31日为例。其中周六和周日算周末。
查询除周末以外的天数(oracle中以周日为1,周一为2……周六为7),可用如下语句:
with t as(select rownum-1 rn from dual connect by rownum<=100)
select count() from t
where to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'yyyy-mm-dd') between '2015-12-01' and '2015-12-31'
and to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'d') not in (6,7);
查询结果:
查日历可得,2015年12月1日至2015年12月31日期间,周六周日的天数合计8天,31-8=23,与语句所得结果一致。
select
from (select to_date('2013-01-01', 'yyyy-mm-dd') + rownum - 1 days
from dba_objects) a
where extract(year from days) = 2013
and to_char(days, 'WW') = 22
and to_char(days, 'day') in ('星期一', '星期二', '星期三', '星期四', '星期五')
年份:2013,第几周:22
本文将从数据库角度来解决这一问题,当然利用代码在逻辑中更容易实现哦!! 注:本文应用是oracle10; 第一步: 创建一个表格holiday用于灵活存放节假日日期(周末除外),如果和周末日期重复,则无需添加到该表格中: Sql代码 create table HOLIDAY ID VARCHAR2(45) not null, HL_DATE DATE, HL_DESC VARCHAR2(500), REMARK VARCHAR2(500), constraint PK_HOLIDAY primary key (ID) ); comment on table HOLIDAY is '节假日日期表(不含周末)'; comment on column HOLIDAY.ID is '节假日编号'; comment on column HOLIDAY.HL_DATE is '节假日期'; comment on column HOLIDAY.HL_DESC is '假日说明'; comment on column HOLIDAY.REMARK is '备注'; 添加一些测试数据: ID HL_DATE HL_DESC 1 2012-9-29 十一 2 2012-10-1 十一 3 2012-10-2 十一 4 2012-10-3 十一 5 2012-10-4 十一 6 2012-10-5 十一 7 2012-9-3 测试 8 2012-9-5 测试 9 2012-9-6 测试 第二步:写个函数用以获取两个日期之间的周末天数,如下: Sql代码 create or replace function weekend_count(startdate date,enddate date) return number /返回两个时间段内的周末天数,开始日期不计算在内/ is weekend_num number:=0; tempdate date; begin tempdate:=startdate+1; while tempdate
oracle中最简单获取日期的方式是通过查询sysdate来获取。
语句如下:
select sysdate from dual;结果:
如果只获取日期部分:
select to_char(sysdate,'yyyy-mm-dd') from dual;结果:
以上就是关于oracle中得到当前系统时间全部的内容,包括:oracle中得到当前系统时间、oracle中怎么得到日期相减除去周末后的天数、oracle 获取指定周的星期一到星期五日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)