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

1 oracle删除数据用了java

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

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

有索引oracle

2 varchar记录时间spa

比较大小时能够直接拿来比较,若是长度同样的话,由于都是一位一位比较大小,因此有长度的限制.net

3 java传参索引

尽可能不用to_date,因此当有条件判断须要时间格式时get


相似 

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而抛出异常。it

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

此处参见: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

相关文章
相关标签/搜索