TO_DATE格式(以时间:2007-11-02 13:45:25为例) 
Year: 
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
yyyy four digits 四位年 显示值:2007
Month: 
mm number 两位月 显示值:11
mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov 
month spelled out 字符集表示 显示值:11月,若是英文版,显示novembe
Day: 
dd number 当月第几天 显示值:02
ddd number 当年第几天 显示值:02
dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday 
ddspth spelled out, ordinal twelfth

Hour:
hh two digits 12小时进制 显示值:01
hh24 two digits 24小时进制 显示值:13

Minute:
mi two digits 60进制 显示值:45

Second:
ss two digits 60进制 显示值:25

其它
Q digit 季度 显示值:4
WW digit 当年第几周 显示值:44
W digit 当月第几周 显示值:1

24小时格式下时间范围为: 0:00:00 - 23:59:59.... 
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....

1. 日期和字符转换函数用法(to_date,to_char)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串 
select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年 
select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月 
select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日 
select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时 
select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分 
select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//

2. 
select to_char( to_date(222,'J'),'Jsp') from dual

显示Two Hundred Twenty-Two

3.求某天是星期几 
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 
星期一 
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; 
monday 
设置日期语言 
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'; 
也可以这样 
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')

4. 两个日期间的天数 
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

5. 时间为null的用法 
select id, active_date from table1 
UNION 
select 1, TO_DATE(null) from dual;

注意要用TO_DATE(null)

6.月份差 
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd') 
那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。 
所以,当时间需要精确的时候,觉得to_char还是必要的

7. 日期格式冲突问题 
输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01' 
alter system set NLS_DATE_LANGUAGE = American 
alter session set NLS_DATE_LANGUAGE = American 
或者在to_date中写 
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; 
注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多, 
可查看 
select * from nls_session_parameters 
select * from V$NLS_PARAMETERS

8. 
select count(*) 
from ( select rownum-1 rnum 
from all_objects 
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002- 
02-01','yyyy-mm-dd')+1 

where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' ) 
not in ( '1', '7' )

查找2002-02-28至2002-02-01间除星期一和七的天数 
在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).

9. 查找月份 
select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL; 

select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL; 
1.03225806451613

10. Next_day的用法 
Next_day(date, day)

Monday-Sunday, for format code DAY 
Mon-Sun, for format code DY 
1-7, for format code D

11 
select to_char(sysdate,'hh:mi:ss') TIME from all_objects 
注意:第一条记录的TIME 与最后一行是一样的 
可以建立一个函数来处理这个问题 
create or replace function sys_date return date is 
begin 
return sysdate; 
end;

select to_char(sys_date,'hh:mi:ss') from all_objects;

12.获得小时数 
extract()找出日期或间隔值的字段值
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer 
SQL> select sysdate ,to_char(sysdate,'hh') from dual;

SYSDATE TO_CHAR(SYSDATE,'HH') 
-------------------- --------------------- 
2003-10-13 19:35:21 07

SQL> select sysdate ,to_char(sysdate,'hh24') from dual;

SYSDATE TO_CHAR(SYSDATE,'HH24') 
-------------------- ----------------------- 
2003-10-13 19:35:21 19

ORACLE日期时间函数大全(一)相关推荐

  1. [转]ORACLE日期时间函数大全

    本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间:2007 ...

  2. Oracle 日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)             Year:               yy two digits ...

  3. ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digi

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)             Year:               yy two digits ...

  4. oracle+5秒钟一个间隔,ORACLE日期时间函数大全 (二)

    13.年月日的处理 select older_date, newer_date, years, months, abs( trunc( newer_date- add_months( older_da ...

  5. oracle 选时间到五月,oracle日期时间函数小结

    oracle日期时间函数总结 经常写 sql 的同学应该会接触到一些 oracle 的日期时间函数, 例如: 财务软件或者人力资源软件需要按照每年, 每季度, 每月, 甚至每个星期来进行统计. 今天闲 ...

  6. php 中日期时间函数大全,PHP 中日期时间函数 date() 用法总结

    [导读] date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考.格式化日期date() 函数的第一个参数规定了如何格式化日期 时间.它 ...

  7. MySQL日期时间函数大全(转)

    DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,--7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03'); - ...

  8. oracle 取上季末日期,oracle 日期时间函数使用总结

    今天闲来没事, 特意从网上整理了一些资料, 以备日后查阅. 一.常用日期数据格式 1. 获取年的最后一位, 两位, 三位, 四位 select to_char(sysdate,'Y') from du ...

  9. oracle和MySQL的日期函数_mysql与oracle的日期/时间函数小结

    前言 本文的日期/时间全部格式化为"2016-01-01 01:01:01"形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时 ...

最新文章

  1. java数据库视图工具_数据库视图工具类
  2. babymips(上) 寒假逆向生涯(14/100)
  3. MySQL数据库-笔记02【创建数据库与数据表、数据类型、约束概念与举例】
  4. 在 C++中处理错误
  5. F5刷新表单页不能清空缓存
  6. KaggleTianChi分类问题相关算法快速实现
  7. oracle视图查询机制,物化视图及日志内部机制的一点研究
  8. java getconstructors,java 反射 constructors的问题,真心需要解决
  9. 文章页调用栏目链接和栏目名称的方法
  10. JavaScript43种常见的浏览器兼容性问题大汇总
  11. wordpress如何在多说评论框中设置圆形旋转头像?
  12. html中对应Word中的字体和字号
  13. visual studio 2010 破解版 破解方法
  14. 大数据技术原理与应用答案 林子雨 第二版
  15. mysql 主键和候选键_2.2.2 候选键与主键
  16. access无法 dolby_dolby access怎么用?
  17. 2015.02.08——张佳莉
  18. java棒棒糖和皮卡丘八音盒_如何比别人抢先一步买到肯德基的皮卡丘八音盒?我有两个小建议...
  19. matlab 求全波整流信号的傅里叶系数
  20. 软件测试---性能测试

热门文章

  1. mysql数据库(10):数据 备份
  2. ghost linux 全盘拷贝,如何用ghost实现小硬盘对大硬盘的全盘拷贝?
  3. python逻辑表达式3+45and_python入门到精通(一)| python基础语法与各种运算符的使用...
  4. 好用的工具网站!(缓慢收集中!)
  5. Ubuntu 重置MySQL密码
  6. 【使用指南】WijmoJS 前端开发工具包
  7. WSDL4J解析WSDL文件方法
  8. Coursera公开课-Machine_learing:编程作业7
  9. c# 关于WebBrowser的模拟提交InvokeMember方法是什么意思!
  10. Oracle中NVL2 和NULLIF的用法