
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;
SELECT trunc(sysdate) FROM dual 是这种的吗?
SELECT trunc(sysdate,'yyyy') FROM dual
SELECT trunc(sysdate,'mm') FROM dual
SELECT trunc(sysdate,'dd') FROM dual
怎么才叫一个星期啊?
譬如1号是星期3,这算这个月的星期吗?
---------------------这有个存储过程,可以参考----------------
PROCEDURE getWeekly( p_date IN DATE, -- 月份所在日期
p_number IN NUMBER, -- 第几周
p_startDATE OUT DATE , --该周开始日期
p_endDATE OUT DATE ) --该周结束日期
AS
v_lastDay DATE;
v_firstDay DATE;
BEGIN
v_lastDay := LAST_DAY(p_date);
v_firstDay := ADD_MONTHS(v_lastDay, -1) + 1;
p_startDate := ROUND(v_firstDay + 7(p_number-1)-1, 'DAY');
p_endDate := p_startDate + 6;
END getWeekly;
--------------------------下边是一些日期函数------------------
select to_char(sysdate,'dy') from dual;---看当天是星期几
select to_char(sysdate,'W') from dual;---查看当月的第几周
拿今天是3月4号说
select to_char(sysdate+26,'W') from dual;---表示这个月最后一天属于第几周,得出来结果是5,你是这个意思吧?
1、首先可以直接用datepart函数,第一个参数设置成weekday就可以了。
2、得到的结果是这一天是这周的第几天,注意星期日是第一天。
3、可以看到去掉星期日就是日期的星期几了。
4、然后在实际使用的时候就可以直接减去1就可以了。
5、另外datepart第二个参数也可以直接放getdate。
6、最后得到的结果也是需要的日期。
查询时间段每一天的日期用如下语句。
如要查询2015年1月1日到2015年1月15日每一天的日期。
with t as(select rownum-1 rn from dual connect by rownum<=100)
select to_date('2015-01-01','yyyy-mm-dd')+rn from t
where to_char(to_date('2015-01-01','yyyy-mm-dd')+rn,'yyyy-mm-dd') between '2015-01-01' and '2015-01-15' ;
查询结果:
with t as(select date'2015-1-1'+level-1 as dt from dual connect by level<=365)
select dt,to_char(dt,'w') as w,to_char(dt,'day') as d,
trunc((to_char(dt,'dd')+to_char(last_day(add_months(dt,-1)),'d')-1) /7) +1 as e from t;
希望这个能满足你的要求!
首先确认是全年连续的日期,是否工作日有明显标记。
根据你说的意思,应该是非工作日是不稳定的,那最笨也最简单就是从开始的那天-1,判断是不是工作日,不是计数,继续-2,再判断,直到计数满足你要前推的要求。
select to_char(sysdate,'day') day from dual;
会显示中文,例如: 星期二
select to_char(sysdate,'d') day from dual;
会显示是一周的第几天,不过外国星期日才是第一天,所以如果你把周一当第一天的话,需要
select to_char(sysdate-1,'d') day from dual;
以上就是关于oracle中得到当前系统时间全部的内容,包括:oracle中得到当前系统时间、oracle 如何获取当前的日期,不能带时间、oracle sql拼写紧急求救,在线等,恳请高手指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)