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)
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)
相关文章推荐
- oracle学习笔记-命令和函数
- Oracle SQL*plus常用的命令和函数
- oracle常用命令查询、建表、建用户、分区、表空间、函数
- 【转】oracle 数值型函数,字符型函数,日期函数,转换函数,to_char,自动类型转换,日期类型转换
- SQL 10 函数 3 日期时间函数 - 4 日期增减(Oracle)
- Oracle over函数和rank函数学习
- Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)
- Oracle SQL*plus常用的命令和函数
- oracle学习(函数)
- Oracle学习记录——使用自定义函数和触发器实现主键动态生成
- Oracle一些日期计算的函数
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
- oracle 日期转换格式 函数
- MySQL学习足迹记录09--常用文本,日期,数值处理函数
- Oracle学习:Oracle常用函数集
- ORACLE学习第七篇(常用处理函数)
- oracle 基础学习03 ---- 函数 触发器 存储过程
- 日期设置linux命令学习之 date认识
- sql日期有关函数以及oracle日期有关函数
- 我自己学习C++编写的常用函数,类,模版 最近修改日期:2008年3月26日