斗爷

导航

oracle与java中对date的加一天操作的不同(转)

出处:http://hi.baidu.com/huahua035/item/6f44d4f65ead14b131c199bf

首先说Java中对日期date加一天的操作:

     Calendar calendar=Calendar.getInstance();
       calendar.setTime(new Date());
       calendar.add(Calendar.DATE, 1);     // 加一天
       long times=calendar.getTimeInMillis(); //获得当前时间秒

多么直接呀,Calendar 对象已经封装啦时间操作的常用方法。。。。

oracle中更直接:

sysdate+1 加一天
sysdate+1/24 加1小时
sysdate+1/(24*60) 加1分钟
sysdate+1/(24*60*60) 加1秒钟
类推至毫秒0.001秒

demo:

-- 系统当前时间
select sysdate from dual;
-- 系统时间+1 明天的此时
select sysdate+1 from dual; 
-- 系统时间延迟5分钟的时间
select sysdate now,(sysdate+5/(24*60)) delay from dual;

 

 

唯一感觉oracle和java中不同的是:

oracle比较日期类型的大小用>,<符号就可以比较日期啦,当然前提条件是必须是日期类型的了,比如:

select * from t_event where play_date>to_date('2010-06-29 00:00:00','yyyy-MM-dd HH24:mi:ss')

而java中的比较大小用的是方法before/after

 

Oracle中的to_date参数含义

日期格式参数  含义说明D一周中的星期几DAY  天的名字,使用空格填充到9个字符DD  月中的第几天DDD年中的第几天DY天的简写名IW ISO标准的年中的第几周IYYYISO标准的四位年份YYYY四位年份YYY,YY,Y年份的最后三位,两位,一位HH小时,按12小时计HH24小时,按24小时计MI分SS秒MM月Mon  月份的简写Month  月份的全名W该月的第几个星期WW年中的第几个星期

而且常用的计算年龄的SQL(最笨的办法计算):

select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(t.play_date,'yyyy')) age
 from t_stu t

posted on 2013-05-06 12:48  斗哥哥  阅读(617)  评论(0编辑  收藏  举报