一 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)