oracle中得到当前系统时间

oracle中得到当前系统时间,第1张

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 获取指定周的星期一到星期五日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9720251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存