日期:2014-05-16 浏览次数:20397 次
?
举例说明:
1、日期字符转换函数to_date(),to_char()
??
SQL:select to_date('20080229132545','yyyy-mm-dd hh24:mi:ss') from dual ;
RESULT:2008-2-29 13:25:45
?? SQL:select to_char(sysdate,'hh:mi:ss')
TIME from dual; RESULT:10:51:43
2、
??
SQL:select to_char( to_date(2008,'J'),'Jsp') from dual; RESULT:Two
Thousand Eight
3、查看哪天的年份
??
SQL:select to_char(to_date('2008-2-29','yyyy-mm-dd'),'year') from
dual;???? RESULT:two thousand eight
?? SQL:select
to_char(to_date('2008-2-29','yyyy-mm-dd'),'yyyy') from dual;????
RESULT:2008
4、查看哪天的月份
?? SQL:select
to_char(to_date('2008-2-29','yyyy-mm-dd'),'month') from dual;RESULT:2月
??
SQL:select to_char(to_date('2008-2-29','yyyy-mm-dd'),'mm') from
dual;??? RESULT:02
5、查看哪天是星期几
??
SQL:select to_char(to_date('2008-2-29','yyyy-mm-dd'),'day') from
dual;????? RESULT:星期五
?? SQL:select
to_char(to_date('2008-02-29','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE =
American') from dual;
?? RESULT:friday
?? SQL:select
to_char(to_date('2008-2-29','yyyy-mm-dd'),'dd') from dual;RESULT:29
6、查看两个日期之间的天数
?? SQL:select floor(sysdate -
to_date('20080201','yyyymmdd')) from dual; RESULT:28
??
注:sysdate是2008-02-29
7、取两个日期之间除了周六周日的天数
??
SQL:
?? select count(*)
?? from ( select rownum-1 rnum
??
from all_objects
?? where rownum <=
to_date('2008-02-29','yyyy-mm-dd') - to_date('2008-
??
02-01','yyyy-mm-dd')+1
?? )
?? where to_char(
to_date('2008-02-01','yyyy-mm-dd')+rnum-1, 'D' )
?? not
?? in (
'6', '7' )
?? RESULT:
?? 21
8、查看两个日期之间的月
数
?? SQL:select months_between(to_date('2-29-2008',
'MM-DD-YYYY'),to_date('10-1-2007', 'MM-DD-YYYY')) "MONTHS" FROM DUAL;
??
RESULT:4.90322580645161
9、next_day函数
??
next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
?? 1 2 3 4 5 6 7
??
日 一 二 三 四 五 六
10、查看小时分秒
?? select
sysdate ,to_char(sysdate,'hh') from dual;
?? select sysdate
,to_char(sysdate,'mi') from dual;
?? select sysdate
,to_char(sysdate,'ss') from dual;
11、取一年的天数(例如
今年2008)
?? SQL:select add_months(trunc(sysdate,'year'), 12) -
trunc(sysdate,'year') from dual ;RESULT:366
12、
yyyy与rrrr的区别
?? yyyy 99 0099
?? rrrr 99 1999
?? yyyy
01 0001
?? rrrr 01 2001
13、一年的第几天
??
SQL:select TO_CHAR(SYSDATE,'DDD'),sysdate from dual ;RESULT:060
??
注:sysdate是2008-02-29
14、add_months()用于从一个日期值增加或
减少一些月份
?? SQL:select add_months(sysdate,12) from
dual;????????????????????? RESULT:2009-2-28 11:23:50
15、extract()找出日期或间隔值的字段值
?? SQL:select
extract(month from sysdate) from dual; RESULT:2
?? SQL:select
extract(year from add_months(sysdate,36)) from dual; RESULT:2011
16、last_day()返回包含了日期参数的月份的最后一天的日期
??
SQL:select last_day(sysdate) from
dual;???????????????????????????????????????? RESULT:2008-2-29
?
===================================================================================================================
TO_DATE格式
Day:
dd
number 12
dy abbreviated fri
day spelled
out friday
ddspth spelled out, ordinal twelfth