出处: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