`

Oracle中根据Date型转换成Java对应的long型毫秒数

阅读更多

在Java开发中,很多时候我们为了方便会直接使用long型来保存时间,可以通过System.currentTimeMillis()或者是java.util.Date.getTime()来获取;取值为当前日期时间与1970-01-01相差的毫秒数;

但是在Oracle里面,默认没有直接提供获取当前时间的秒数的相关function,所以要想在SQL里面获得毫秒数,只能自己手动计算下喽,如下:

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') current_date, (sysdate- to_date('1970-01-01','yyyy-mm-dd')) * 86400 current_milli from dual;
CURRENT_DATE        CURRENT_MILLI
-------------------               -------------
2011-03-28 18:42:11     1301337731
时区导致的问题: 比如我使用GMT+08 北京时间,所以按照上面的方式从Oracle中计算出来的秒数经Java中转换后的日期会比正常日期大8h;

结合自己系统的时区对SQL语句稍作修改即可:
SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') current_date,
  2         (sysdate - 8 / 24 - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400000 current_milli
  3    from dual;

CURRENT_DATE             CURRENT_MILLI
-------------------               -------------
2011-03-28 18:42:11    1301308931
用简单的Java测试代码测试、结果显示完全匹配;Java代码如下:

Date date = new Date(1301337731L);
System.out.println(date);           //2009-08-25 17:33:17  

 

 

 //得到当前日期的秒数
      Date d=new Date();
      System.out.println(d.getTime()/1000);   //d.getTime()得到的是毫秒数  1301309324
     
    //知道毫秒数得到当前日期
      Date d1=new Date(1301308931*1000l);  //此值为毫秒数
      System.out.println(sdf.format(d1));            //2011-03-28 18:42:11

分享到:
评论

相关推荐

    java与oracle等数据库类型对应

    1. **java.util.Date**: 这是Java的标准日期时间类,它可以表示从1970年1月1日00:00:00 GMT开始的毫秒数。由于"Date"类包含了日期和时间,所以它可以完美地对应Oracle中的"Date"类型。 2. **java.sql.Date**: 这个...

    使用oracle计算系统当前时间的毫秒数

    在Java中,可以通过`java.util.Date`类的构造函数或`System.currentTimeMillis()`方法来处理Oracle返回的毫秒数。以下是一个简单的示例代码: ```java Date date = new Date(1251192797000L); // 2009-08-25 17:33:...

    java插入oracle中date类型方式.pdf

    Java 中的 `java.util.Date` 和 Oracle 中的 `java.sql.Date` 都提供了 `getTime()` 函数,该函数用于返回对应的毫秒数(long 类型)。利用这个函数可以实现转换: ```java java.util.Date utilDate = new java....

    Oracle Sql语句转换成Mysql Sql语句

    OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...

    java插入oracle中date类型方式.docx

    Java的`java.util.Date`类和`java.sql.Date`类都提供了`getTime()`方法,该方法返回日期对应的毫秒数。因此,你可以通过以下方式在两者之间进行转换: ```java java.util.Date utilDate = new java.util.Date...

    Mysql、orcale 中的数据类型与java中的数据类型对应表.pdf

    在 Oracle 中,Date 类型对应 Java 中的 java.util.Date 和 java.sql.Date 类型。其中 java.util.Date 类型的作用范围更广泛,因此通常应用于业务逻辑层,而 java.sql.Date 类型主要用于数据库交互。 在数据类型...

    oracle中TIMESTAMP与DATE比较

    在Oracle数据库中,`TIMESTAMP`与`DATE`两种数据类型是用于存储日期和时间信息的关键组成部分,但它们之间存在显著的区别,特别是在处理时间和精度方面。本文将深入探讨这两种数据类型的特点,以及如何在实际应用中...

    hibernate映射Oracle中LONG类型

    "hibernate映射Oracle中LONG类型" Hibernate 框架映射 Oracle 中的 LONG 类型字段是一种复杂的技术问题。Oracle 中的 LONG 类型字段是一种特殊的数据类型,用于存储可变长字符串,最大长度限制是 2GB。这与 Java ...

    java存储oracle中的clob类型

    ### Java存储Oracle中的CLOB类型知识点详解 #### 一、CLOB类型简介及Java操作方法 CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在Oracle数据库中被广泛使用,可以支持最大4GB的数据量。...

    java中xml文件的处理及oracle中xmltype的插入和读取.pdf

    Java 中 XML 文件的处理及 Oracle 中 XMLType 的插入和读取 Java 中 XML 文件的处理是指在 Java 应用程序中处理和操作 XML 文件的过程。在 Oracle 数据库中,XMLType 是一种特殊的数据类型,用于存储和处理 XML ...

    oracle-java数据类型1

    例如,当你从数据库查询数据时,需要知道如何将 Oracle 的 `NUMBER` 类型转换为 Java 中的 `BigDecimal`,或者如何处理 `TIMESTAMP` 类型以考虑时区信息。理解这些细节将确保数据的准确性和应用程序的兼容性。

    Oracle与DB2数据类型分类对应说明

    DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相对应。Oracle 也支持大对象:BLOB、CLOB、NCLOB 等。例如,Oracle 中的 BLOB 和 CLOB 可以提供 4GB 的空间,而 DB2/400 中的 BLOB 和 CLOB 只能存放...

    oracle中日期类型与unix 时间戳的转换

    Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 SELECT oracle_to_unix(SYSDATE),unix_to_oracle(1551774286),oracle_to_unix(SYSDATE) FROM dual;

    oracle时间和秒之间相互转换

    本文将详细介绍如何在Oracle中实现当前时间与毫秒之间的转换,并提供具体的示例代码。 ### 一、获取当前时间 在Oracle中,可以通过`SYSDATE`函数来获取当前系统时间。如果需要将这个时间格式化为特定的格式,可以...

    Java连接Oracle数据库的各种方法

    SQLJ是另一种方法,它是一个预编译器,能够将Java源代码中的嵌入式SQL语句转换为Java代码。它的运行机制类似于Oracle的其他编译器,比如Pro*C和Pro*COBOL。SQLJ可以理解为“Pro*Java”,因为它的功能与Pro*C类似,但...

    oracle LongRaw 转 Blob

    在C#中,Oracle提供了Oracle.DataAccess.Client库来操作Oracle数据库,包括LongRaw和Blob字段的转换。以下是一个简单的步骤概述: 1. **连接数据库**:使用OracleConnection类建立到Oracle数据库的连接。需要提供...

    运用Java如何存取Oracle中的CLOB类型字段

    ### 运用Java如何存取Oracle中的CLOB类型字段 #### 概述 在数据库操作中,经常会遇到处理大量文本数据的需求,例如存储文章、新闻、文档等。Oracle数据库提供了CLOB(Character Large Object)类型来存储大容量的...

    java连接oracle数据库jar包

    要实现Java连接Oracle数据库,首先需要在项目中引入对应的JDBC驱动JAR包。这可以通过以下步骤完成: 1. 将下载的JDBC驱动JAR文件添加到项目的类路径中。如果你使用的是IDE(如Eclipse或IntelliJ IDEA),可以将JAR...

Global site tag (gtag.js) - Google Analytics