我有一个数据库中的日期存储区作为varchar中的长整型值,例如:1230748200000. 我需要通过oracle查询从其中获得年份。我怎么能在Oracle中做到这一点?有没有一种方法可以将日期转换为日期以便我可以获得年份?问题是我不能使用to_char(SYSTIMESTAMP,'yyyy')或to_Date,因为我没有时间戳或日期格式的日期...而是让它只要varchar从存储在oracle数据库中的long var char毫秒值获取日期数据库
谢谢。
编辑: 你可以请给出一个解决方案,以下情况。我有1262284398000在我的表保存为VAR char.so正如我所说的,我需要让我今年使用下面的SQL这回一年,2009年
select
to_char(
to_date('01-JAN-1970','DD-MM-YYYY HH24:MI SS') + (1262284398000/(1000*60 * 60 * 24)) ,'YYYY')
from dual ;
但在Java代码相同的值返回日期截止到2010年使年是不同的,
Calendar c = Calendar.getInstance();
c.setTimeInMillis(1262284398000l);
System.out.println(c.getTime());
System.out.println(c.get(Calendar.YEAR));
哪个日期返回作为星期五01月01 00:03:18 IST2010为什么这里的区别?
关于Java和Oracle结果之间的区别:我不知道,也没有安装Java以便能够使用它。 Java碰巧报告2000年2月29日是无效日期吗?只是好奇。 – 2010-11-30 19:38:45