您的位置:首页 > 数据库 > Oracle

oracle删除168万数据;varchar表示时间;java传参date;传参后的时间保存到秒

2014-07-31 00:00 232 查看
1 oracle删除数据用了

select count(*) from GPSTEST t where gpstime<'20140730020101' 有 1689675条数据

delete from GPSTEST t where gpstime<'20140730020101' 耗时 23分钟

有索引

2 varchar记录时间

比较大小时可以直接拿来比较,如果长度一样的话,因为都是一位一位比较大小,所以有长度的限制

3 java传参

尽量不用to_date,所以当有条件判断需要时间格式时

类似

date a,b= ....

PrepareStatment s = 'select * from test where mydatecolumn between ? and ?'

s.set(1) = a;
s.set(2) = b;

而不是使用s = 'select * from test where mydatecolumn between to_date( '2007-10-22 20:20:20 ', 'yyyy-MM-DD hh-mm-ss ') and to_date( '2007-10-22 22:22:22 ', 'yyyy-MM-DD hh-mm-ss ')'

因为这样会出现数据的不一致,比如出现不符合要求的日期:2007-22-22而抛出异常。

ps:
在直接使用sql访问数据库的时候肯定要用to_date的。

此处参见:http://bbs.csdn.net/topics/190057099

4传参后的时间保存到秒

用3方法中储存数据则时间只会到日,精确到秒使用

java.sql.Date sd;
java.util.Date ud ;

ud = new java.util.Date();
sd = new java.sql.Date(ud.getTime());
ptmt = conn.prepareStatement("insert into plan_singlebridge values (?)");
ptmt.setDate(1, sd);
-----
实际存入的数据之精确到天并没有时秒分的数据;
困扰了很久
改成时间戳的形式就可以了
ptmt.setTimestamp(1,new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()));

此处参见 : http://www.iteye.com/topic/128068
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐