Foros del Web » Programación para mayores de 30 ;) » Java »

Casting varying para Postgres

Estas en el tema de Casting varying para Postgres en el foro de Java en Foros del Web. Hola, buenos días. Tengo un problemilla, a ver si me podéis echar cable. Resulta que estoy haciendo un programa en Java y estoy tratando de ...
  #1 (permalink)  
Antiguo 12/09/2013, 05:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
Casting varying para Postgres

Hola, buenos días.

Tengo un problemilla, a ver si me podéis echar cable.

Resulta que estoy haciendo un programa en Java y estoy tratando de insertar los datos en la BBDD que es en PostGres.

El caso es que a la hora de insertar los datos, me sale este error:

ERROR: la columna «DSAADENTRA» es de tipo timestamp with time zone pero la expresión es de tipo character varying
Hint: Necesitará reescribir la expresión o aplicarle una conversión de tipo.

Así está definido en la BBDD las variables:

Cita:
CAYUEXPEDI VARCHAR(13)
CSAAD VARCHAR(35)
DSAADENTRA TIMESTAMPTZ
DIASSENTRA TIMESTAMPTZ
Y luego en la clase para definir esto:

Cita:
private String CAYUEXPEDI;
private String CSAAD;
private String DSAADENTRA;
private String DIASSENTRA;
El procedimiento para insertar datos (no es un procedimiento almacenado, es un Insert)

Cita:
PreparedStatement stmt = connection.prepareStatement("insert into presta_pia values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1, piaayu.getCAYUEXPEDI());
stmt.setString(2, piaayu.getCSAAD());
stmt.setString(3, piaayu.getDSAADENTRA());
stmt.setString(4, piaayu.getDIASSENTRA());
stmt.setString(5, piaayu.getCTITIDENIF());
He probado a cambiar DSAADENTRA y DIASSENTRA a formato Date y nada. Ni tampoco funciona con Timestamp.

¿Existe alguna solución sin tocar nada la BBDD?

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 12/09/2013, 12:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Casting varying para Postgres

Hola:

En tu clase tienes que poner DSAADENTRA y DIASSENTRA como java.sql.TimeStamp y en el smt decir stmt.setTimeStamp (...)

Unicamente comentar que hay java.sql.Date, java.sql.Time y java.sql.Timestamp. El Date es solo fecha, sin hora. El Time es solo hora, sin fecha y el Timestamp es fecha y hora. Pon el que quieras. Por supuesto, tienes stmt.setDate() y stmt.setTime()

Se bueno
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, postgres, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:26.