您的位置:首页 > 数据库 > Oracle

Oracle中把integer转换成date类型

2009-09-11 12:08 405 查看
在一个table中有一个字段,create_date,是integer类型的,

想把它转换成date类型的。

有一个数值为1249920604



使用java转换以后的结果是:

1252637469968
Tue Aug 11 00:10:04 CST 2009
20090811

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
public static void main(String[] args) {
Format formatter;
formatter = new SimpleDateFormat("yyyyMMdd");
long someLong = 1249920604000L;
//long someLong = 0L;

Date date = new Date();
// from Date to long
long currentTime = date.getTime();
// from long to Date
Date anotherDate = new Date(someLong);
String text = formatter.format(anotherDate);
System.out.println(currentTime);
System.out.println(anotherDate);
System.out.println(text);
}
}


使用sql的结果是

2009-8-10 16:10:04

SELECT TO_DATE ('01/01/1970', 'MM/DD/YYYY') + (1249920604 / (24 * 60 * 60)),
TO_DATE (TO_CHAR (  TO_DATE ('01/01/1970', 'MM/DD/YYYY')
+ (1249920604 / (24 * 60 * 60)),
'YYYYMMDD'
),
'YYYYMMDD'
)
FROM DUAL


比较以后发现使用java的结果比使用sql的结果多了8个小时,

可以java考虑了时区,自动加上了8个小时(GMT+8).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: