日期大小比较问题

yhd0411 2007-04-04 10:01:58
Oracle表中字段类型为varchar2(19),内容为'2007-01-01 00:00:00'

程序中变量数据为'20070401'

如何进行这二个日期的比较大小,用什么函数转换?
...全文
296 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KevinXie 2007-04-04
  • 打赏
  • 举报
回复
写一个专门的处理类 就不用每次都要去写代码 直接调用就可以了
KevinXie 2007-04-04
  • 打赏
  • 举报
回复
public static final String getDateString(java.util.Date aDate) {
String ret = "";
Calendar c = Calendar.getInstance();
c.setTime(aDate);

ret = c.get(Calendar.YEAR) + "-" ;
ret = ret + addZero((c.get(Calendar.MONTH)+1) + "", 2) + "-" ;
ret = ret + addZero((c.get(Calendar.DAY_OF_MONTH)) + "", 2) + " " ;
ret = ret + addZero((c.get(Calendar.HOUR_OF_DAY)) + "", 2) + ":" ;
ret = ret + addZero((c.get(Calendar.MINUTE)) + "", 2) + ":";
ret = ret + addZero((c.get(Calendar.SECOND)) + "", 2);
return ret;
}

我不知道你的参数是不是日期行,如果不是,你可以改写一下就好了
KevinXie 2007-04-04
  • 打赏
  • 举报
回复
最简单的是在sql直接比较:
用oracle的日期函数转换:to_date("20070401","yyyy-mm-dd hh24:mm:ss")
当然前提是相关的字段也要是日期型的.假如不是的话 只能用楼上那些的方法了,其实很多,你也可以写一个类,专门处理成你需要的格式.

我也同样有个疑问,既然是日期,为什么不设为日期型 而要为varchar2行

Squall1009 2007-04-04
  • 打赏
  • 举报
回复
SimpleDateFormat cf=new SimpleDateFormat("yyyyMMdd");
yhd0411 2007-04-04
  • 打赏
  • 举报
回复
本来是从文本中导的数据到Oracle中的,但导的时候没有用to_date转换,就直接用了varchar2(19),
请问是下面这样转换吗?

String oldDate="20070401";
SimpleDateFormat cf=new SimpleDateFormat("yyyy-MM-dd");
Date newDate=cf.parse(oldDate);//
Date oraDate=cf.parse(rs.getString("数据库字段"));//数据库字段
zuguanqun 2007-04-04
  • 打赏
  • 举报
回复
to_date转换一下 变成统一的日期类型
Squall1009 2007-04-04
  • 打赏
  • 举报
回复
用java.text.SimpleDateFormat里的方法将字符串转为Date
然后用java.util.Date
boolean before(Date when) 或者 boolean after(Date when)

但不清楚为什么既然是日期在Oracle里面用varchar2(19)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧