`
wangyanlong0107
  • 浏览: 486539 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Oracle数据库date类型与Java中Date的联系与转化

 
阅读更多

转自:http://blog.csdn.net/tiaozhanzhe0321/article/details/5713138

以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助。
new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前。
new Date(long date) : 分配 Date 对象并初始化此对象,以表示自从标准基准时间
    (称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
long getTime() :返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
String toString() :把此 Date 对象转换为以下形式的 
    String: dow mon dd hh:mm:ss zzz yyyy 
    其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
  
*****************************************
static Calendar getInstance() :使用默认时区和语言环境获得一个日历。 
 Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。 
long getTimeInMillis() :返回此 Calendar 的时间值,以毫秒为单位。 
void setTime(Date date) :使用给定的 Date 设置此 Calendar 的时间。 
void setTimeInMillis(long millis) :用给定的 long 值设置此 Calendar 的当前时间值。
 

**** *************************************
new SimpleDateFormate("yyyy-MM-dd hh:mm:ss").format(new Date());返回String类对象

 
总结:
1、获得系统当前时间
    获得long型: System.currentTimeMillis()
    获得Data型:new Data();
    获得Calendar型:
            Calendar c = Calendar.getInstance();
            c.setTime(System.currentTimeMillis();
    通常获得Calendar后,可以对各个字段进操作;
2、时间的各种类型之间的转换:
    Calendar 到Date:c.getTime() 返回一个Date对象
    Date 到 Calendar:c.setTime():返回一个Calendar对象
3、关于数据库中时间的存储对象
    (1)表示日期和时间的DATA类型,DATA字段中存储的值包含有与世纪、年、月、日、小时、分钟、和秒相对应的“组成部分”,它通过不同的方法显示和操作,它有效地独立于任何塔顶字符串格式
    (2)从Oracle 9i开始提供TIMESTAMP类型是DATE类型的有效扩展形式,它提供更大的时间精度,支持多大九位的小孩,同时还能存储时区信息
    (3)从Oracle 9i开始INTERVAL类型,它支持存储时间差,并且可以与DATE或者TIMESTAMP加法运算以生成一个新的DATE或者TIMESTAMP

    使用SYSDATE选择当前的系统时间,返回DATE类型的值,是数据库所在的操作系统的当前日期和时间
    DATE类型的内部表示形式:执行select DUMP(sysdate) from dual;
    Typ=13 Len=8: 218,7,3,23,11,27,11,0 结果中逗号分割的值对应于Oracle存储日期和时间的每个部分,(从世纪到秒)所使用的字节
4、DATE对象与字符串之间进行转换
    TO_DAT()和TO_CHAR():这两个函数都有三个参数,一个是要转化的值,一个是可选的格式掩码和一个用于指定语言的可选字符串
    to
        select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
        select to_date('20100323','YYYYMMDD') from dual;
        select ename, to_char(hiredate,'ddthMon,YYYY') from emp
        where hiredate between 
        to_date('1980-01-01','YYYY-MM-DD')
        and
        to_date('1985-01-01','YYYY-MM-DD')
5、常用操作
    把程序的数据存到数据库中:
        当程序中是String 类型时,SQL文应该用上
        to_date(hiredate,'yyyy-mm-dd hh24:mi:ss')这样放到数据库中就是date类型
        当程序中是Date类型时,必须先转为String类型,利用
        new SimpleDateFormate("yyyy-MM-dd hh:mm:ss").format(new Date())转化
    把数据库中数据取出时
        要使用to_char(hiredate,'YYYY-MM-DD HH24:MI:SS')变为String类型,
        还可以继续利用java.sql.Date.valueOf(String s)
        将 JDBC 日期转义形式的字符串转换成 Date 值。 
6、取得Oracle数据库时间并存到Java中
    从数据库date取得并转为java.util.Date类型
    方法一: select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') as current_time from dual 取得字符串
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    String dateString = format.parse(map.get("CURRENT_TIME"));解析后取得Date的类型: Sat Jul 03 13:32:46 CST 2010
    format.format(dateString);然后再格式化成想要的格式字符串
    format.format(dateString);将Date类型转为想要的格式。但是类型为String。在想变回来时在用parse()方法.
    方法一: select (sysdate - 8 / 24 - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400000 current_milli from dual 取得java.math.BigDecimal类型
        BigDecimal b = (BigDecimal)dateMap.get("CURRENT_MILLI");
        Long dateLong = b.longValue();
        new Date(dateLong);取得Date对象,可以处理

分享到:
评论

相关推荐

    Oracle数据库应用开发基础

    Oracle数据库应用开发基础是IT领域中的重要组成部分,它涉及到如何使用Oracle数据库系统进行高效的数据存储、管理和应用程序开发。Oracle数据库是世界上最广泛使用的数据库之一,尤其在企业级应用中占据主导地位。...

    SQL Server导入Oracle数据库

    本主题将深入探讨如何将数据从SQL Server导入到Oracle数据库,这涉及到多个步骤和技术。以下是对这个过程的详细解析: 首先,理解SQL Server和Oracle是两种不同的关系型数据库管理系统(RDBMS)。SQL Server由微软...

    实现ORACLE与SQLSERVER数据库间的数据抽取与转换工具

    对于Oracle数据库,我们可以使用PL/SQL语句或者Oracle的SQL*Plus工具来实现。在SQL Server中,我们可以利用T-SQL语言进行数据检索。 接下来是数据转换,这个阶段的目标是将从源数据库抽取的数据转化为目标数据库...

    Oracle Sql语句转换成Mysql Sql语句

    在使用这个工具时,开发者需要确保源代码中的SQL语句是标准的Oracle SQL格式,避免使用特定Oracle数据库的特性,以提高转换的成功率。同时,转换后还需要对生成的MySQL SQL进行测试,确保在目标数据库环境中能正常...

    最新JAVA面试题总结之数据库.docx

    Oracle 中经常使用到的函数包括 Length 长度、lower 小写、upper 大写、to_date 转化日期、to_char 转化字符、Ltrim 去左边空格、substr 取字符串、add_month 增加或者减掉月份、to_number 转变为数字等。...

    利用kettle的api运用Java代码完成数据转换到excel和数据库源码

    利用 Kettle 的 API 运用 Java 代码完成数据转换到 Excel 和数据库源码 Kettle 是一个开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定。Kettle 中有两种脚本文件,transformation 和 job,...

    etl.RAR_etl_etl oracle mysql_mysql的 etl函数_oracle_oracle向mysql e

    在将Oracle数据迁移到MySQL时,可能需要特别关注数据类型的对应,比如Oracle的NUMBER类型在MySQL中可能是DECIMAL或INT,DATE类型在MySQL中需要转化为日期字符串格式。此外,还需要处理Oracle特有的约束和索引,以...

    数据库信息管理系统-JAVA实现.doc

    本系统采用JAVA语言进行实现,结合数据库原理与设计方法,旨在提供一个高效、可靠的图书管理信息平台。 一、需求说明 1. 任务概述 这个项目的主要任务是构建一个基于JAVA的图书管理信息系统,用于存储、检索和管理...

    oracle,mysql表格转换mybatis相关文件

    例如,Oracle和MySQL的日期时间类型可能需要转换为Java的Date或Timestamp对象。MyBatis使用#{param}来绑定参数,而结果集映射(ResultMap)则用于将数据库查询结果转换为Java对象。 接下来,我们讨论MyBatis的动态...

    JSP Oracle 新闻发布 示例

    在IT行业中,JSP(JavaServer Pages)与Oracle数据库的结合常常用于构建动态、高性能的Web应用程序,特别是在新闻发布系统中。本示例将详细探讨如何利用JSP技术和Oracle数据库来设计一个新闻发布系统,帮助你理解这...

    java实用例子.pdf

    连接Oracle数据库通常需要加载Oracle JDBC驱动,然后创建数据库连接。以下是一个示例: ```java public class OracleJdbcTest { String driverClass = "oracle.jdbc.driver.OracleDriver"; Connection con; ...

    java-Oracle概要.docx

    Java-Oracle概要 Oracle 基础知识一、数据库标准语言结构化查询语言 SQL: 1. 数据定义语言 DDL:Data Definition Language - create table:创建表结构 - alter table:修改列 - drop table:删除列 2. 数据...

    数据库设计--报刊订阅管理系统(有关数据库的课程设计)

    在本项目中,可能涉及的数据库类型是关系型数据库,如MySQL或Oracle,因为它们支持结构化数据,并且易于理解和使用。 设计数据库的第一步是需求分析。在这个阶段,我们要确定系统需要处理哪些数据,比如用户信息...

    Java经典理论面试100题.pdf

    7. **序列化**:Java序列化是将对象转化为字节流的过程,以便于存储或在网络上传输。实现序列化的类需实现`Serializable`接口。 8. **多态**:Java中实现多态的条件是子类继承父类或实现父接口,并且重写父类的方法...

    网上书店数据库代码_Navicat.zip

    Navicat是一款强大的数据库管理和开发工具,支持多种数据库类型,包括MySQL、Oracle、SQL Server等,方便开发者进行数据查询、管理、设计和同步。 在“book.sql”文件中,我们可以预期找到创建网上书店数据库的SQL...

    java入门学习资料

    14. **JDBC**:Java Database Connectivity是Java与数据库交互的标准API,学习如何连接数据库,执行SQL语句,处理结果集。 15. **Java EE**:如果你对服务器端开发感兴趣,Java Enterprise Edition(Java EE)包含...

    疯狂JAVA讲义

    3.5.2 强制类型转化 54 3.5.3 表达式类型的自动提升 56 3.6 直接量 57 3.6.1 直接量的类型 57 3.6.2 直接量的赋值 58 3.7 运算符 58 3.7.1 算术运算符 58 3.7.2 赋值运算符 61 3.7.3 位运算符 62 3.7.4 ...

    java2实用教程(第3版例子代码)

    这个压缩包包含了与教程配套的实例代码,使得理论知识能够更好地转化为实际操作能力。在学习过程中,实践是检验理解和掌握知识的关键,这些例子代码为学习者提供了宝贵的实践机会。 Java是一种广泛使用的面向对象的...

    Hibernate学习笔记

    Hibernate是一款广泛应用于Java开发中的ORM(对象关系映射)框架,它的主要目标是简化数据库操作,将数据库的CRUD(创建、读取、更新、删除)操作转化为对Java对象的操作。通过Hibernate,开发者可以避免编写大量的...

    Oracle练习笔试大全

    //(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; //字符串的连接 8、select distinct deptno from emp; //消除deptno字段重复的值 9、...

Global site tag (gtag.js) - Google Analytics