时间

 

java.util.Date和java.sql.Timestamp转换

 数据库存储date
存数据:

java.sql.Date 只存储日期数据不存储时间数据 
// 会丢失时间数据 
preparedStatement.setDate(1, new java.sql.Date(date.getTime())); 
//可以这样来处理 
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime())); 

 

取数据:
//想要得到完整的数据,包括日期和时间,可以这样 
java.util.Date d = resultSet.getTimestamp(1); 
//这样处理更合适一些,可以避免一些潜在Timestamp 问题 
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime()); 


        往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。 
       从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个java.util.Date对象,这样就可以对这个Date对象操作了。例如 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等

 

反思:处理数据:

model:util date     po:util  date  (因为有完成的精准数据)

数据库定义字段:timestamp

取:java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime()); Date对象操作了。例如 new SimpleTimeFormat("yyyyy-MM-dd 

存:preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime())); 

 

 

反思:处理数据:

model:String    po:String

数据库定义字段:date (这个字段 跟sql.date 包不一样 ,可以有时分秒,但是没有毫秒)

取:to_char()  mysql:str_to_stamp()

存:to_date(), t0_timestap()

 

去点  不能精确到毫秒,会丢失唯一具体时间,不能在集群的数据操作的单线程进行唯一标识,当是不同类型数据库时,不通用。  

 

select sysdate,systimestamp from dual;
select systimestamp(6) from dual;
select * from dual where to_char(systimestamp,'yyyymmdd hh24:mi')='20160101 11:14';
insert into timedemo (id,sjc,sjc2,sj)values('1',systimestamp,systimestamp,sysdate);
select do.id, do.sjc,do.sjc2,do.sj,do.rowid from timedemo do

insert into timedemo (id,sjc,sjc2,sj)values('1', to_timestamp('2008-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'),systimestamp,sysdate);
insert into test values(
to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'),

insert into timedemo (id,sjc,sjc2,sj)values('1', to_timestamp(to_char(systimestamp, 'yyyy-mm-dd HH24:mi:ss.ff'),'yyyy-mm-dd hh24:mi:ss.ff'),systimestamp,sysdate);
insert into timedemo (id,sjc,sjc2,sj)values('1', to_timestamp(to_char(systimestamp, 'yyyy-mm-dd'),'yyyy-mm-dd hh24:mi:ss.ff'),systimestamp,sysdate);

 

 

 

Date date = new Date();
long rightTime = date.getTime();
ResultSet rs = null;
PreparedStatement ps=null;
ps.setDate(parameterIndex, x)te(1, x);

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(时间)