`
linguoluo
  • 浏览: 18082 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

java oracle 时间处理

 
阅读更多
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:年中的第几个星期
分享到:
评论

相关推荐

    LIB图书管理系统 java oracle数据库

    《LIB图书管理系统:Java与Oracle数据库的协同应用》 在信息技术日益发达的今天,图书管理系统的建设已经成为图书馆信息化建设的重要组成部分。"LIB图书管理系统"就是这样一款利用Java编程语言与Oracle数据库相结合...

    java代码oracle数据库批量插入

    ### Java代码实现Oracle数据库批量插入的关键知识点 #### 1. JDBC连接配置 - **JDBC URL**: `jdbc:oracle:thin:@IP:1521:orcl`,这里的URL指定了连接到Oracle数据库的方式。其中`@IP:1521:orcl`中的IP是指数据库...

    Oracle数据库时间类型与JAVA之间的转换和应用.pdf

    ### Oracle数据库时间类型与JAVA之间的转换和应用 #### 一、从Oracle数据库中查询时间的格式 在Oracle数据库中,时间通常以特定的格式存储。当通过Java应用程序使用JDBC从Oracle数据库中检索时间时,可能会遇到...

    java 连接oracle代码

    Java连接Oracle数据库主要依赖于Java Database Connectivity (JDBC) API,这是一个Java标准,允许Java程序与各种数据库进行交互。在本示例中,我们将探讨如何使用Java和JDBC驱动程序来建立与Oracle数据库的连接。...

    BBS1.rar_java oracle tomcat_java 后台 oracle_oracle_oracle java to

    标题"BBS1.rar_java oracle tomcat_java 后台 oracle_oracle_oracle java to"和描述中的关键词揭示了这个压缩包包含的是一个基于Java、Oracle数据库和Tomcat服务器的后台留言板系统的开发资源。以下是对这些技术栈...

    java连接oracle

    综上所述,使用Java连接Oracle数据库涉及加载驱动、设置连接参数、建立连接等多个步骤,每一步都需要仔细处理以确保代码的正确性和效率。掌握这一技能对于任何从事数据库应用开发的Java程序员来说都是至关重要的。

    java调用Oracle的锁表命令

    在Java编程中,与Oracle数据库进行交互是常见的需求,特别是在处理并发事务时,可能需要对表进行锁定以确保数据的一致性。本篇将详细讲解如何在Java中调用Oracle的锁表命令。 首先,Oracle数据库提供了多种锁类型,...

    java Oracle备份

    根据提供的文件信息,我们可以深入探讨如何使用Java通过外部系统命令模式来备份Oracle数据库。下面将详细解释相关的知识点。 ### Java Oracle备份:系统命令模式备份数据库 #### 一、背景介绍 在企业级应用环境中...

    Oracle Timestamp with Time zone & java

    总结起来,Oracle的Timestamp with Time Zone类型和Java的`ZonedDateTime`类是处理时区敏感日期时间的关键工具。在开发中,理解它们的工作原理,掌握如何在数据库和应用程序之间正确地转换和操作这些数据,对于构建...

    JAVA+ORACLE公交信息管理系统

    总结来说,JAVA+ORACLE公交信息管理系统结合了JAVA的开发便捷性和ORACLE的数据处理优势,构建了一个高效、稳定的城市交通信息平台。通过对数据的实时管理和智能查询,极大地便利了公众的出行生活,也展示了信息技术...

    java操作Oracle

    Java操作Oracle数据库是一种常见的任务,尤其在开发企业级应用程序时。本文主要介绍了一些关于Java JDBC API在Oracle数据库上的使用技巧,以提升性能和实现更高效的功能。 首先,选择合适的驱动程序至关重要。...

    Java代码生成Oracle版

    在Java开发中,尤其是与Oracle数据库集成时,这些组件是必不可少的部分,它们负责处理CRUD(创建、读取、更新、删除)操作和分页查询。 Spring Boot是Spring框架的一个简化版本,它内置了大量常用的配置,使得...

    java与oracle等数据库类型对应

    尽管如此,由于Oracle的"Date"实际上也包含时间,因此在实际应用中,通常更推荐使用"java.util.Date",因为它可以处理更广泛的情况。 在选择使用哪种Java日期类型时,如果数据库中的"Date"类型只需要日期,且业务...

    java实现oracle和sqlserver数据库转换(包含大数据)

    本话题聚焦于使用Java来实现在Oracle和SQL Server之间的大规模数据迁移。Oracle是知名的高性能关系型数据库,而SQL Server则是Microsoft公司推出的强大数据库解决方案,两者在语法、数据类型以及管理方式上都有所...

    windwos_x64_oracle_java1.9.rar

    本压缩包"windwos_x64_oracle_java1.9.rar"提供了适用于Windows 64位系统的Oracle Java 1.9(也称为Java SE 9)的安装程序。 首先,Java 9的重大改变之一是模块化系统(Project Jigsaw)。这个特性将Java平台分解...

    Java实现mybatis批量插入数据到Oracle

    在处理大数据量时,批量插入能显著提高性能,减少网络传输和数据库事务处理的时间。 批量插入在MyBatis中主要通过`<foreach>`标签来实现。以下是一个简单的示例: 1. 在Mapper接口中定义方法: ```java public ...

    java配置oracle连接池[参考].pdf

    Java 配置 Oracle 连接池 Java 配置 Oracle 连接池是指在 Java 应用程序中配置连接 Oracle 数据库的连接池,以提高数据库访问的效率和性能。连接池是指在应用程序启动时创建的一组数据库连接,以便在需要时可以快速...

    java jsp sqlserver数据表转移到oracle实例 源代码

    1. **数据类型映射**:SQL Server和Oracle的数据类型不完全相同,例如SQL Server的`NVARCHAR`在Oracle中可能是`NCLOB`,`DATE`在Oracle中可能需要区分时间部分。源代码中应包含将这些数据类型进行适配的逻辑。 2. *...

Global site tag (gtag.js) - Google Analytics