出处:http://www.cnblogs.com/ajian/archive/2009/03/25/1421063.html
年份:
YY两位数两位年显示值:07YYY三位三位年显示值:007
YYYY四位四位年显示值:2007 月: 毫米数两位月显示值:11 周一略字符集表示显示值:11月,若是英文版,显示月 一个月拼写字符集表示显示值:11月,若是英文版,显示月 日: DD号当月第几天显示值:02 DDD数当年第几天显示值:02 DY缩写当周第几天简写显示值:星期五,若是英文版,显示周五 当天阐述了当周第几天全写显示值:星期五,若是英文版,显示周五 ddspth拼写,依次十二 小时: HH型双数字12小时进制显示值:01 HH24两位数24小时进制显示值:13 分钟: MI两位60进制显示值:45 二: SS两位60进制显示值:25 其它 Q位数季度显示值:4 位数WW当年第几周显示值:44 W¯¯数字当月第几周显示值:1 24小时格式下时间范围为:0:00:00 - 23:59:59 .... 12小时格式下时间范围为:1:00:00 - 12:59:59 .... 1。日期和字符转换函数用法(TO_DATE,TO_CHAR)选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')作为nowTime从双; //日期转化为字符串 选择TO_CHAR(SYSDATE,'YYYY')作为nowYear从双; //获取时间的年 选择TO_CHAR(SYSDATE,“毫米”)作为nowMonth从双; //获取时间的月 选择TO_CHAR(SYSDATE,“DD”)作为nowDay从双; //获取时间的日 选择TO_CHAR(SYSDATE,'HH24')作为nowHour从双; //获取时间的时 选择TO_CHAR(SYSDATE,'MI')作为nowMinute从双; //获取时间的分 选TO_CHAR(SYSDATE,'SS')作为nowSecond从双; //获取时间的秒
选择从TO_DATE双//('2004-05-07十三点23分44秒“,”YYYY-MM-DD HH24:SS:宓)
2.
选择TO_CHAR(TO_DATE(222,'J'),'.JSP')从双 显示两一百二十二
3.求某天是星期几
选择TO_CHAR(TO_DATE('2002-08-26','YYYY-MM-DD“),”日“)从双;
星期一
选择TO_CHAR(TO_DATE('2002-08-26 ','YYYY-MM-DD'),' 天','NLS_DATE_LANGUAGE =美国“)从双;
星期一
设置日期语言
ALTER SESSION SET NLS_DATE_LANGUAGE ='美国';
也可以这样
TO_DATE('2002-08-26', 'YYYY-MM-DD','NLS_DATE_LANGUAGE =美国“)
4.两个日期间的天数
选择地板(SYSDATE - TO_DATE('20020405','YYYYMMDD'))从双;
5.时间为空的用法
中选择ID,从表1 active_date
UNION
选择1,TO_DATE(空)从双; 注意要用TO_DATE(空)
6月份差
TO_DATE之间a_date('20011201','YYYYMMDD')和 日期格式冲突问题 输入的格式要看你安装的ORACLE字符集的类型,比如:US7ASCII,日期格式的类型就是:'01 -JAN-01“ 改变系统设置NLS_DATE_LANGUAGE =美国 改变会话设置NLS_DATE_LANGUAGE =美国 或者在TO_DATE中写 选择TO_CHAR(TO_DATE('2002-08-26','YYYY-MM-DD'),' 天','NLS_DATE_LANGUAGE =美国“)从双; 注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多, 可查看 SELECT * FROM nls_session_parameters SELECT * FROM V $ NLS_PARAMETERS
8.
SELECT COUNT(*)
从(选择ROWNUM-1 RNUM
从ALL_OBJECTS
,其中ROWNUM <= TO_DATE('2002-02-28','YYYY-MM-DD') - TO_DATE(“2002-
02-01“,” YYYY-MM-DD')+ 1
)
,其中TO_CHAR(TO_DATE('2002-02-01','YYYY-MM-DD')+ RNUM-1,“D”)
没有('1','7' 让后将结果相减(得到的是1/100秒,而不是毫秒)。
9.查找月份
选择MONTHS_BETWEEN(TO_DATE('01 -31-1999','MM-DD-YYYY“),TO_DATE('12 -31-1998','MM-DD-YYYY'))”二个月“FROM DUAL ;
1
选择MONTHS_BETWEEN(TO_DATE('02 -01-1999','MM-DD-YYYY“),TO_DATE('12 -31-1998','MM-DD-YYYY'))”二个月“FROM DUAL;
1.03225806451613 10。NEXT_DAY的用法 NEXT_DAY(日期,星期) 周一至周日,对于格式的代码DAY 周一至周日,对于格式的代码DY 1-7,对于格式码D
11
选择TO_CHAR(SYSDATE,'HH:MI:SS“)从ALL_OBJECTS时间
注意:第一条记录的时间与最后一行是一样的
可以建立一个函数来处理这个问题
创建或替换功能sys_date归期是
开始
回报SYSDATE ;
;年底 从ALL_OBJECTS;选择TO_CHAR(sys_date,'SS:MI HH') 12获得小时数 提取物()找出日期或间隔值的字段值 选择提取(小时,从TIMESTAMP'2001-02-16 2: 38:40')的报价 SQL>选择SYSDATE,TO_CHAR(SYSDATE,“HH”从双); SYSDATE TO_CHAR(SYSDATE,“HH”) ------------------ - --------------------- 2003-10-13 19点35分21秒07 SQL>选择SYSDATE,从双TO_CHAR(SYSDATE,'HH24'); SYSDATE TO_CHAR(SYSDATE,'HH24') -------------------- --------------------- - 2003-10-13 19时35分21秒19
13.年月日的处理
选择older_date,
newer_date,
年,
月,
ABS(
TRUNC(
newer_date-
ADD_MONTHS(older_date,年* 12 +个月)
)
)日 从(选择 TRUNC(MONTHS_BETWEEN(newer_date,older_date)/ 12岁) , MOD(TRUNC(MONTHS_BETWEEN(newer_date,older_date)),12)个月, newer_date, older_date 从( 选择HIREDATE older_date,ADD_MONTHS(HIREDATE,ROWNUM)+ ROWNUM newer_date 从EMP ) )
14.处理月份天数不定的办法
从双选择TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),“年月日”),LAST_DAY(SYSDATE)
16.找出今年的天数
选择ADD_MONTHS(TRUNC(SYSDATE,'年'),12) - TRUNC(SYSDATE,'年')从双
闰年的处理方法
TO_CHAR(LAST_DAY(TO_DATE('02'| |:今年,“mmyyyy')),”DD“)
如果是28就不是闰年
17.yyyy与RRRR的区别
“YYYY99 TO_C
------- ----
YYYY 99 0099
RRRR 99 1999年
01 YYYY 0001
RRRR 2001年01
18.不同时区的处理
选择TO_CHAR(NEW_TIME(SYSDATE,“GMT”,“EST”),“DD / MM / YYYY HH:MI:SS”),SYSDATE
从双;
19.5秒钟一个间隔
选择TO_DATE((TO_CHAR(SYSDATE,'SSSSS')/ 300)* 300,“SSSSS”楼),TO_CHAR(SYSDATE,'SSSSS“)
从双
2002年11月1日9点55分00秒35786
SSSSS表示5位秒数
20.一年的第几天
选择TO_CHAR(SYSDATE,“DDD”),从双SYSDATE 310 2002年11月6日10时03分51秒
21.计算小时,分,秒,毫秒
选择
天,
A,
TRUNC(A * 24)小时,
TRUNC(A * 24 * 60 - 60 * TRUNC(A * 24))分,
TRUNC(A * 24 * 60 * 60 - 60 * TRUNC(A * 24 * 60))秒,
TRUNC(A * 24 * 60 * 60 * 100 - 100 * TRUNC(A * 24 * 60 * 60))mSeconds
从
(
选择
TRUNC(SYSDATE)天,
SYSDATE - TRUNC(SYSDATE)一个
从双
)
SELECT * FROM TABNAME
为了通过解码(模式,'先进先出',1,-1)* TO_CHAR(RQ,'YYYYMMDDHH24MISS'); // 楼((DATE2-DATE1)/ 365)作为年 地板((date2的-DATE1, 365)/ 30)作为月 D(MOD(date2的-DATE1,365),30)作为日。
23.next_day函数 2 3 4 5 6 7 日一二三四五六 ------------------------------------- -------------------------- 选择(SYSDATE-TO_DATE('2003-12-03 12点55分45秒“,”YYYY-MM- DD HH24:MI:SS'))* 24 * 60 * 60,从ddual 日期返回的是天然后转换为SS 24轮[舍入到最接近的日期(日:舍入到最接近的星期日) 选择SYSDATE S1, 圆(SYSDATE)S2, 圆(SYSDATE,'年')YEAR, 圆(SYSDATE,'月')个月的, 圆(SYSDATE,'天')的双日
25,TRUNC [截断到最接近的日期,单位为天],返回的是日期类型
选择SYSDATE S1,
TRUNC(SYSDATE)S2,//返回当前日期,无时分秒
TRUNC(SYSDATE,'年')年, //返回当前年的1月1日,无时分秒
TRUNC(SYSDATE,'月')个月的,//返回当前月的1日,无时分秒
TRUNC(SYSDATE,'天')天//返回当前星期的星期天,无时分秒
从双
26,返回日期列表中最晚日期
从双-选择最大(1月-04','04- 1月-04','10- 2月-04''01)
27.计算时间差
注:甲骨文时间差是以天数为单位,所以换算成年月,日 选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24: MI:SS'))/ 365)从双//时间差spanYears -年 选择CEIL(moths_between(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI: SS')))从双//时间差spanMonths -月 选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS')) )从双//时间差spanDays -天 选层(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24)从双//时间差spanHours -时 选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24 * 60)为从双//时间差spanMinutes -分 选层(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24 * 60 * 60 )从双spanSeconds //时间差-秒
28.更新时间
注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日
select TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')TO_CHAR(SYSDATE + N * 365,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-年
选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“),ADD_MONTHS(SYSDATE,N)为从NEWTIME双//改变时间-月
选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS '),TO_CHAR(SYSDATE + N,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-日
选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“) ,TO_CHAR(SYSDATE + N / 24,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-时
选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“) ,TO_CHAR(SYSDATE + N / 24/60'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-分
选TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS '),TO_CHAR(SYSDATE + N / 24/60/60'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-秒
29.查找月的第一天,最后一天
SELECT TRUNC(TRUNC(SYSDATE,“月”) - 1,“月”)First_Day_Last_Month,
TRUNC(SYSDATE,'月') -八万六千四百分之一Last_Day_Last_Month,
TRUNC(SYSDATE,'月“)First_Day_Cur_Month,
LAST_DAY(TRUNC(SYSDATE,“月”))+ 1 -八万六千四百分之一Last_Day_Cur_Month
FROM DUAL;