您的位置:首页 > 数据库 > Oracle

oracle 日期函数命令学习二

2010-09-14 16:04 477 查看
一 sysdate的应用

1. select to_char(sysdate,'YYYY') from dual ; //取年的四位

select to_char(sysdate,'YY') from dual ; //取年的两位

2. select to_char(sysdate,'Q') from dual ; //取日期的季度

3. select to_char(sysdate,'MM') from dual ; //取日期的月份

select to_char(sysdate,'Month') from dual ; //取日期的月份 9月

4. select to_char(sysdate,'WW') from dual ; //取当年的第几周

5. select to_char(sysdate,'W') from dual ; //取当月的第几周

6. select to_char(sysdate,'DDD') from dual ; //取当年的第几天

7. select to_char(sysdate,'DD') from dual ; //取当月的第几天

8. select to_char(sysdate,'D') from dual ; //取当周的第几天

9. select to_char(sysdate,'DY') from dual ; //取中文的星期几

10. select to_char(sysdate,'HH') from dual ; //12进制小时数

11. select to_char(sysdate,'HH24') from dual ; //24进制小时数

二 常用时间函数

1.trunc(sysdate,'Q') 本季度第一天

select trunc(sysdate,'Q') from dual ;

2. trunc(sysdate,'D') 本周的第一天(周日)

select trunc(sysdate,'D') from dual ;

3. select last_day(sysdate) from dual ;//本月的最后一天

4. select add_months(sysdate,2) from dual ;//日期sysdate后推2个月

5. select next_day(sysdate,2) from dual ; //日期sysdate之后的第一周中,第2(指定星期的第几天)是什么日期

6. select months_between(to_date('2010-10-05','yyyy-mm-dd'),sysdate) from dual ;//日期间相差月数

7. SELECT to_char(SYSDATE+5,'mon','nls_date_language=american') FROM dual; //得到SYSDATE+5所在的月份

8. select current_date from dual ; //返回当前会话时区中的当前日期

9. select datimezone from dual ;

10.extract()找出日期或间隔值的字段值

select extract(month from sysdate) "This Month" from dual ;

select extract(year from sysdate) "This Year" from dual ;

select extract(month from add_months(sysdate,2)) "Month" from dual ;

三、一些实践后的用法:

1.上月末天: select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;

2.上月今天 select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;

3.上月首天 select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;

4.要找到某月中所有周五的具体日期 SELECT to_char(b.a,'YY-MM-DD') FROM ( SELECT trunc(SYSDATE,'mm')+ROWNUM-1 a FROM dba_objects where rownum < 32 ) b WHERE to_char(b.a,'day')='星期五'; 如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')改成sysdate-90,即为查找当前月份的前三个月中 的每周五的日期。

5.得到系统当前月及以后的日期 select trunc(sysdate, 'MM')+ROWNUM-1 FROM dba_objects ; ----------------------------------- to_date 字符串类型转为换日期类型字符串中的相应位置上的字符,必须符合时间范围的限制

6.MI 分钟数(0~59) 提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

7.SS 秒数(0~59)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: