当前位置: 移动技术网 > IT编程>数据库>Oracle > oracle 日期函数集合(集中版本)第1/2页

oracle 日期函数集合(集中版本)第1/2页

2017年12月12日  | 移动技术网IT编程  | 我要评论

一、 常用日期数据格式

1.y或yy或yyy 年的最后一位,两位或三位
sql> select to_char(sysdate,'y') from dual;
to_char(sysdate,'y')
--------------------
7
sql> select to_char(sysdate,'yy') from dual;
to_char(sysdate,'yy')
---------------------
07
sql> select to_char(sysdate,'yyy') from dual;
to_char(sysdate,'yyy')
----------------------
007
2.q 季度 1~3月为第一季度,2表示第二季度。
sql> select to_char(sysdate,'q') from dual;
to_char(sysdate,'q')
--------------------
2
3.mm 月份数
sql> select to_char(sysdate,'mm') from dual;
to_char(sysdate,'mm')
---------------------
05
4.rm 月份的罗马表示 (v在罗马数字中表示 5)
sql> select to_char(sysdate,'rm') from dual;
to_char(sysdate,'rm')
---------------------
v
5.month 用9个字符长度表示的月份名
sql> select to_char(sysdate,'month') from dual;
to_char(sysdate,'month')
------------------------
5月
6.ww 当年第几周 (2007年5月29日为2007年第22周)
sql> select to_char(sysdate,'ww') from dual;
to_char(sysdate,'ww')
---------------------
22
7.w 本月第几周 (2007年5月29日为5月第5周)
sql> select to_char(sysdate,'w') from dual;
to_char(sysdate,'w')
--------------------
5
8.ddd 当年第几天 (2007年5月29日为2007年第149天)
sql> select to_char(sysdate,'ddd') from dual;
to_char(sysdate,'ddd')
----------------------
149
9. dd 当月第几天
sql> select to_char(sysdate,'dd') from dual;
to_char(sysdate,'dd')
---------------------
29
10.d 周内第几天
sql> select to_char(sysdate,'d') from dual;
to_char(sysdate,'d')
--------------------
3
11.dy 中文的星期几 ( (2007年5月29日为星期二))
sql> select to_char(sysdate,'dy') from dual;
to_char(sysdate,'dy')
---------------------
星期二
12.hh或hh12 12进制小时数 (16:09分为用12小时制计时为4点)
sql> select to_char(sysdate,'hh') from dual;
to_char(sysdate,'hh')
---------------------
04
13.hh24 24小时制
sql> select to_char(sysdate,'hh24') from dual;
to_char(sysdate,'hh24')
-----------------------
16
二、常用时间函数
1.trunc(sysdate,'q') 本季度第一天
sql> select trunc(sysdate,'q') from dual;
trunc(sysdate,'q')
------------------
2007-4-1
2.trunc(sysdate,'d') 本周的第一天(周日)
sql> select trunc(sysdate,'d')from dual;
trunc(sysdate,'d')
------------------
2007-5-27
3.last_day(sysdate) 本月最后一天
sql> select last_day(sysdate) from dual;
last_day(sysdate)
-----------------
2007-5-31 15:20:3
4.add_months(sysdate,2) 日期sysdate后推2个月

sql> select add_months(sysdate,2) from dual;
add_months(sysdate,2)
---------------------
2007-7-29 15:21:14
5.next_day(sysdate,2) 日期sysdate之后的第一周中,第2(指定星期的第几天)是什么日期
sql> select next_day(sysdate,2) from dual;
next_day(sysdate,2)
-------------------
2007-6-4 15:22:10
6.months_between(f,s) 日期f和s间相差月数
sql> select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual;
months_between(sysdate,to_date
------------------------------
1.56909908900836

7.得到sysdate+5所在的月份
sql> select to_char(sysdate+5,'mon','nls_date_language=american') from dual;
to_char(sysdate+5,'mon','nls_d
------------------------------
jun
8.current_date()返回当前会话时区中的当前日期 。
9.select dbtimezone from dual;
10.extract()找出日期或间隔值的字段值
sql> select extract(month from sysdate) "this month" from dual;
this month
----------
5
sql> select extract(year from sysdate) "this year" from dual;
this year
----------
2007
sql> select extract(month from add_months(sysdate,2)) " month" from dual;
month
----------
7

==================================================================
三、一些实践后的用法:
1.上月末天:
select to_char(add_months(last_day(sysdate),-1),'yyyy-mm-dd') lastday from dual;
2.上月今天
sql> select to_char(add_months(sysdate,-1),'yyyy-mm-dd') pretoday from dual;
3.上月首天
sql> 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 字符串类型转为换日期类型
字符串中的相应位置上的字符,必须符合时间范围的限制
14.mi 分钟数(0~59)
提示注意不要将mm格式用于分钟(分钟应该使用mi)。mm是用于月份的格式,将它用于分钟也能工作,但结果是错误的。
15.ss 秒数(0~59)
2

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网