1、Oracle日期时间用法Oracle日期时间用法.txt永远像孩子一样好奇,像年轻人一样改变,像中年人一样耐心,像老年人一样睿智。我的腰闪了,惹祸的不是青春,而是压力。当女人不再痴缠,不再耍赖,不再喜怒无常,也就不再爱了。 PURGE RECYCLEBIN转一篇oracle日期时间用法的文章,十分有用!-相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。常用日期型函数 1。Sysdate 当前日期和时间SQL Select sysdate f
2、rom dual;SYSDATE-21-6月 -052。Last_day 本月最后一天 SQL Select last_day(sysdate) from dual;LAST_DAY(S-30-6月 -053。Add_months(d,n) 当前日期d后推n个月 用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months)SQL Select add_months(sysdate,2) from dual;ADD_MONTHS-21-8月 -054。Months_between(f,s) 日期f和s间相差月数 SQL
3、 select months_between(sysdate,to_date(2005-11-12,yyyy-mm-dd)from dual;MONTHS_BETWEEN(SYSDATE,TO_DATE(2005-11-12,YYYY-MM-DD)- -4.6966741 5。NEXT_DAY(d, day_of_week)返回由day_of_week命名的,在变量d指定的日期之后的第一个工作日的日期。参数day_of_week必须为该星期中的某一天。SQL SELECT next_day(to_date(20050620,YYYYMMDD),1) FROM dual;NEXT_DAY(T-2
4、6-6月 -056。current_date()返回当前会话时区中的当前日期 date_value:=current_date SQL column sessiontimezone for a15 SQL select sessiontimezone,current_date from dual; SESSIONTIMEZONE CURRENT_DA - - +08:00 13-11月-03 SQL alter session set time_zone=-11:00 2 / 会话已更改。 SQL select sessiontimezone,current_timestamp from du
5、al; SESSIONTIMEZONE CURRENT_TIMESTAMP - - -11:00 12-11月-03 04.59.13.668000 下午 -11:00 7。current_timestamp()以timestamp with time zone数据类型返回当前会话时区中的当前日期SQL select current_timestamp from dual;CURRENT_TIMESTAMP-21-6月 -05 10.13.08.220589 上午 +08:008。dbtimezone()返回时区SQL select dbtimezone from dual;DBTIME-08
6、:009。extract()找出日期或间隔值的字段值 date_value:=extract(date_field from datetime_value|interval_value) SQL select extract(month from sysdate) This Month from dual;This Month- 6SQL select extract(year from add_months(sysdate,36) Years from dual; Years- 200810。localtimestamp()返回会话中的日期和时间 SQL select localtimest
7、amp from dual;LOCALTIMESTAMP-21-6月 -05 10.18.15.855652 上午常用日期数据格式(该段为摘抄)Y或YY或YYY 年的最后一位,两位或三位 Select to_char(sysdate,YYY) from dual; 002表示2002年 SYEAR或YEAR SYEAR使公元前的年份前加一负号 Select to_char(sysdate,SYEAR) from dual; -1112表示公元前111 2年 Q 季度,13月为第一季度 Select to_char(sysdate,Q) from dual; 2表示第二季度 MM 月份数 Sel
8、ect to_char(sysdate,MM) from dual; 12表示12月 RM 月份的罗马表示 Select to_char(sysdate,RM) from dual; IV表示4月 Month 用9个字符长度表示的月份名 Select to_char(sysdate,Month) from dual; May后跟6个空格表示5月 WW 当年第几周 Select to_char(sysdate,WW) from dual; 24表示2002年6月13日为第24周 W 本月第几周 Select to_char(sysdate,W) from dual; 2002年10月1日为第1周
9、 DDD 当年第几, 1月1日为001,2月1日为032 Select to_char(sysdate,DDD) from dual; 363 2002年1 2月2 9日为第363天 DD 当月第几天 Select to_char(sysdate,DD) from dual; 04 10月4日为第4天 D 周内第几天 Select to_char(sysdate,D) from dual; 5 2002年3月14日为星期一 DY 周内第几天缩写 Select to_char(sysdate,DY) from dual; SUN 2002年3月24日为星期天 HH或HH12 12进制小时数 Se
10、lect to_char(sysdate,HH) from dual; 02 午夜2点过8分为02 HH24 24小时制 Select to_char(sysdate,HH24) from dual; 14 下午2点08分为14 MI 分钟数(059) Select to_char(sysdate,MI) from dual; 17下午4点17分 SS 秒数(059) Select to_char(sysdate,SS) from dual; 22 11点3分22秒 提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。 现在给出一些实
11、践后的用法:1。上月末天:SQL select to_char(add_months(last_day(sysdate),-1),yyyy-MM-dd) LastDay fromdual;LASTDAY-2005-05-312。上月今天SQL select to_char(add_months(sysdate,-1),yyyy-MM-dd) PreToday from dual;PRETODAY-2005-05-213.上月首天SQL select to_char(add_months(last_day(sysdate)+1,-2),yyyy-MM-dd) firstDay from dual
12、;FIRSTDAY-2005-05-014.按照每周进行统计SQL select to_char(sysdate,ww) from dual group by to_char(sysdate,ww);TO-255。按照每月进行统计SQL select to_char(sysdate,mm) from dual group by to_char(sysdate,mm);TO-066。按照每季度进行统计SQL select to_char(sysdate,q) from dual group by to_char(sysdate,q);T-27。按照每年进行统计SQL select to_char
13、(sysdate,yyyy) from dual group by to_char(sysdate,yyyy);TO_C-20058.要找到某月中所有周五的具体日期 select to_char(t.d,YY-MM-DD) from ( select trunc(sysdate, MM)+rownum-1 as d from dba_objects where rownum 32) t where to_char(t.d, MM) = to_char(sysdate, MM) -找出当前月份的周五的日期 and trim(to_char(t.d, Day) = 星期五 - 03-05-02 03-05-09 03-05-16 03-05-23 03-05-30 如果把where to_char(t.d, MM) = to_char(sysdate, MM)改成sysdate-90,即为查找当前月份的前三个月中的每周五的日期。9.oracle中时间运算内容如下: 1、oracle支持对日期进行运算 2、日期运算时是以天为单位进行的 3、当需要以分秒等更小的单位算值时,按时间进制进行转换即可 4、进行时间进制转换时注意加括号,否则会
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1