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;

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拼写紧急求救,在线等,恳请高手指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9600249.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存