2017-09-25 1 views
0

에 TIMESTAMP 시간을 복구 할 수있는 테이블과 같은 :는 내가 만든 <p>Hypersql</p>으로 Hypersql

: 내가 좋아하는 행을 삽입 fec_creacion 그런 다음

fec_creacion TIMESTAMP WITH TIME ZONE NOT NULL 

입니다

int result = stmt.executeUpdate("CREATE CACHED TABLE solicitudes ("+ 
     "id VARCHAR(36) NOT NULL, extid VARCHAR(36), operacion VARCHAR(15) NOT NULL, "+ 
     "imsi VARCHAR(20),msisdn VARCHAR(20),spid VARCHAR(20),prtb VARCHAR(20),imsiNuevo VARCHAR(20)," 
     + "msisdnNuevo VARCHAR(20), fec_creacion TIMESTAMP WITH TIME ZONE NOT NULL, fec_lstUpdate TIMESTAMP WITH TIME ZONE," 
     + "estado VARCHAR(2),etapa VARCHAR(30),subetapa VARCHAR(30), reintentos INT," 
     + "codresp VARCHAR(20),descresp VARCHAR(100), "+ 
     "PRIMARY KEY (id));"); 

String strSQL="INSERT INTO solicitudes VALUES (" 
     + " '"+id+"'," 
     + " '"+sol.getIdext()+"'," 
     + " '"+sol.getOperacion()+"'," 
     + " '"+sol.getImsi()+"'," 
     + " '"+sol.getMsisdn()+"'," 
     + " '"+sol.getSpid()+"'," 
     + " '"+sol.getPrtb()+"'," 
     + " '"+sol.getImsiNuevo()+"'," 
     + " '"+sol.getMsisdnNuevo()+"'," 
     + " CURRENT_TIMESTAMP , NULL,'-','-','-',0," 
     + " '"+r.getCodigo()+"'," 
     + " '"+r.getDescripcion()+"');"; 
st.executeUpdate(strSQL); 

CURRENT_TIMESTAMP가 그런 분야 "fec_creacion"

날짜와 시간 및 시간대를 넣어, 내가 가진 테이블에서 데이터를 복구 :

ResultSet result = st.executeQuery("Select id,extid,operacion,fec_creacion,fec_lstUpdate,estado,etapa,subetapa,reintentos FROM SOLICITUDES ORDER BY fec_creacion desc LIMIT 5"); 
while(result.next()){ 
    Date fec = result.getDate("fec_creacion");   
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); 
    String sfec=dateFormat.format(fec); 
    System.out.println(" fecc="+sfec); 
} 

그러나 시간이없는 로그 쇼 FECC

fecc=2017-09-25T00:00:00-03:00 

SimpleDateFormat의 패턴을 코드의 다른 부분에서 테스트 한 결과 정상이었습니다.

답변

0

내 오류는 올바른 방법은

Timestamp fecx = result.getTimestamp("fec_creacion"); 
Date fec = new Date(fecx.getTime());  

Date fec = result.getDate("fec_creacion");  

가되었습니다