`

java/oracle日期处理

阅读更多
从sql server转移到oracle时间默认格式不存在,哎,晕死了!
后来看到csdn友博客,太好了,看看一个测试类吧!
public class Test{
   public static void main (String args []){ 
   java.util.Date a = new java.util.Date();
   System.out.println(a);
   java.sql.Date b = new java.sql.Date(a.getTime());
   System.out.println(b);
   java.sql.Time c = new java.sql.Time(a.getTime());
   System.out.println(c);
   java.sql.Timestamp d=new java.sql.Timestamp(a.getTime());
   System.out.println(d);
   }
  }
  
  Mon Apr 03 18:00:34 CST 2006
  2006-04-03
  18:00:34
  2006-04-03 18:00:34.388
  
  1. oracle默认的系统时间就是sysdate函数,储存的数据形如25-3-200510:55:33
  2. java 中取时间的对象是java.util.Date。
  3. oracle中对应的时间对象是java.util.Date,java.sql.Time,java.sql.Timestamp、它们都是是java.util.Date的子类。
  4. oracle中与date操作关系最大的就是两个转换函数:to_date(),to_char()。to_date()一般用于写入日期到数据库时用到的函数。to_char()一般用于从数据库读入日期时用到的函数。
  
  DATE、TIME 和 TIMESTAMP:
  SQL 定义了三种与时间有关的数据类型:DATE 由日、月和年组成。TIME 由小时、分钟和秒组成。 TIMESTAMP 将 DATE 和 TIME 结合起来,并添加了纳秒域。
  标准 Java 类 java.util.Date 可提供日期和时间信息。但由于该类包含 DATE 和 TIME 信息而没有 TIMESTAMP 所需的纳秒,因此并不与上述三种 SQL 类型完全相配。
  因此我们定义了 java.util.Date 的三种子类。它们是:
  1. 有关 SQL DATE 信息的 java.sql.Date
  2. 有关 SQL TIME 信息的 java.sql.Time
  3. 有关 SQL TIMESTAMP 信息的 java.sql.Timestamp
  对于 java.sql.Time,java.util.Time 基本类的小时、分钟、秒和毫秒域被设置为零。 对于 java.sql.Date,java.util.Date 基本类的年、月和日域被分别设置为 1970 年 1 月 1 日。这是在 Java 新纪元中的“零”日期。java.sql.date中的日期可以和标准的SQL语句中含有日期的字段进行比较.java.sql.Timestamp 类通过添加纳秒域来扩展 java.util.Date。
  
  oracle中两个转换函数:
  1. to_date() 作用将字符类型按一定格式转化为日期类型:
  具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd hh24:mi:ss'') 将得到具体的时间。
  2. to_char():将日期转按一定格式换成字符类型:
  具体用法:to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'')
  
  to_date()与24小时制表示法及mm分钟的显示:
  在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。
  如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
  原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。 oracle默认的系统时间就是sysdate函数,储存的数据形如2005-3-2510:55:33,java 中取时间的对象是java.util.Date。
  select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual
  
  在java对oracle的操作中,对日期字段操作的例子:
  表 book 中有name varchar2(20)//书籍名称,buydate Date //购买日期 两个字段。
  已经创建了数据库连接Connection conn;
  
  方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。
  PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
  java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
  pstmt.setString(1, "Java编程思想");
  pstmt.setDate(2,buydate );
  pstmt.execute();
 
 方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)
 
 PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
  java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
  pstmt.setString(1, "Java编程思想");
  pstmt.setTimestamp(2,buydate );
  pstmt.execute();
  
方法三、使用oracle 的to_date内置函数
  
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
  String buydate="2004-06-08 05:33:99";
  pstmt.setString(1, "Java编程思想");
  pstmt.setString(2,buydate );
  pstmt.execute();
  附:oracle日期格式参数含义说明
  d:一周中的星期几
  day:天的名字,使用空格填充到9个字符
  dd:月中的第几天
  ddd:年中的第几天
  dy:天的简写名
  iw: ISO标准的年中的第几周
  iyyy:ISO标准的四位年份
  yyyy:四位年份
  yyy,yy,y:年份的最后三位,两位,一位
  hh: 小时,按12小时计
  hh24:小时,按24小时计
  mi:分
  ss:秒
  mm:月
  mon:月份的简写
  month:月份的全名
  w:该月的第几个星期
  ww:年中的第几个星期 

分享到:
评论
1 楼 kg_1997 2016-03-17  
这个方法太棒了,可以不用to_date函数,实在是棒!!!

相关推荐

    java日常处理函数

    Mysql日期和时间函数 oracle日期函数 JAVA日期处理函数

    oracle database 10g 完整参考手册part1

    第Ⅶ部分 Oracle中的Java 第37章 Java简介 第38章 JDBC程序设计 第39章 Java存储过程 第40章 Oracle真正应用群集 第41章 网格体系结构和管理 第Ⅷ部分 指南 第42章 Oracle数据字典指南 第43章 调整应用程序和SQL...

    oracle时间函数处理总结大全

    oracle时间函数处理总结大全。个人总结的oracle SQL里常用的时间函数,常用日期型函数 贡献给大家分享。。值得大家作为工具

    Oracle数据库SQL基本应用与介绍

    Oracle是能够安装在目前为止所有的计算机上并进行驱动运行的关系型数据库管理系统。Oracle数据库内部的数据操作...Oracle数据库对象:cluster、数据库联接、触发器、外部程序库、索引、Java类、演算子、表、视图等等

    Oracle入门很简单[张朝明].part1

    第2篇介绍了oracle pl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限...

    Oracle入门很简单[张朝明].part2

    第2篇介绍了oracle pl/sql的基本知识,包括sql查询、更新数据、字符型处理、数值型处理、日期型处理、复杂数据处理、控制语句;第3篇以数据库对象为主线讲述了包括视图、约束、游标、触发器、序列、用户角色与权限...

    保存java api、常用工具、一般的api试用代码.rar

    Java API(Java Application Programming Interface)是Java应用程序编程接口的缩写,Java中的API,就是...java.util:该包中主要包含一些实用的工具类,比如集合框架类、日期处理类、字符串解析类、随机数生成类等。

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》结构清晰,示例丰富,实践性强,适用于Oracle数据库开发人员、Oracle数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训...

    Oracle11g从入门到精通2

    从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用开发基础,并通过两个完整案例来介绍基于Java开发包和Oracle数据库...

    Oracle_Database_11g完全参考手册.part3/3

    他的畅销书包括《Oracle Database 11gDBA手册》、Oracle Advanced Tuning and Administration和Oracle SOL&PL;/SQL Annotated Archives。他也为业界的多种杂志撰写了很多技术文章。他经常以贵宾身份出席在北美和...

    Oracle_Database_11g完全参考手册.part2/3

    他的畅销书包括《Oracle Database 11gDBA手册》、Oracle Advanced Tuning and Administration和Oracle SOL&PL;/SQL Annotated Archives。他也为业界的多种杂志撰写了很多技术文章。他经常以贵宾身份出席在北美和...

    java开源包4

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包101

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    oracle使用管理笔记(一些经验的总结)

    15.java操作oracle 31 16.oracle事务处理 34 17.oracle数据完整性 36 18.oracle 序列(sequence) 39 19.oracle 索引 40 20.oracle管理权限和角色 42 21.PL/SQL 47 (1)存储过程简单版本 47 (2)存储过程升级版本 49 (3)...

    java开源包11

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包6

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包9

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

Global site tag (gtag.js) - Google Analytics