Oracle数据库Date类型字段取出后生成一个月后的时间

最近小刘在Java的学习道路上遇到了一个问题:
oracle存储的inputTime是date型,但是不规范,是“2020-3-27 14:04:52”这种的。但是需求要求转成正常的“2020-03-27 14:04:52”。并且在这个时间的基础上往后生成一个月的时间。
在思索之下,我想到了两种办法:

  • 1.直接SQL查询生成
    select to_char(p.input_time + interval ‘1’ month,‘yyyy-MM-dd hh24:mm:ss’) inputTime from pre_info p
    使用这种方法,可以直接通过SQL来生成一个月后的时间,同样的道理
    interval '1’day ,interval '1’hour ,interval '1’year 对应 天、小时、年
  • 2.通过Java代码生成
//这里bean定义的是date型
Date inputTime = queryPreStatus.getInpuTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Calendar calendar = Calendar.getInstance();
 calendar.setTime(inputTime);
 calendar.add(Calendar.MONTH,1);
 Date time = calendar.getTime();
 String oneMonthAfterTime = sdf.format(time);
 

最后生成的string型的时间,即是一个月后的时间,
如果需要跟当前时间比较,也可以生成当前时间后,使用compareto进行比较。
当然了,数据库资源珍贵的多,还是建议大家Java生成,节约资源

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值