Tengo una base de datos Oracle 10g y quiero saber si se puede lo siguiente desde java.
Estoy usando un PreparedStatement para setear la fecha del sistema en un campo Date de una tabla.
Utilizo lo siguiente:
java.sql.Date fechaSys = new java.sql.Date(System.currentTimeMillis());
luego el :
ps.setDate(1, fechaSys)
Pero en la tabla me lo deja de la siguiente forma:
2007-08-23 00:00:00
La pregunta dice es: Se puede con PreparedStatement hacer que me grabe en el campo tipo Date (2007-08-23 10:31:15) la fecha y la hora?
Ojo: Sin tener que utilizar un tipo de campo TimeStamp.
Gracias por los comentarios.
To conform with the definition of SQL <code>DATE</code>, the
* millisecond values wrapped by a <code>java.sql.Date</code> instance
* must be 'normalized' by setting the
* hours, minutes, seconds, and milliseconds to zero in the particular
* time zone with which the instance is associated.
Desarrollador de Software, Soporte Técnico y Seguridad Informática
JSP, Java, PHP, Jscript, Apache & Tomcat Server, MySQL Server, HTML, C++
enriqu...@hotmail.com - enriqu...@yahoo.com - enriqu...@gmail.com
251-6104 - 211-0441 - 6621-5790 -ICQ 157-246-843
Octavio, no entiendo que quieres decir con “caiga los datos al campo que necesitas”.
No se si te refieres a que en el PreparedStatement utilice el metodo ps.setString(……). Quiero que comprendas que el campo en la base de datos es tipo Date y lo que quiero es grabarle a ese campo la fecha y la hora.
Tampoco deseo convertir ese campo a tipo String en la base de datos porque necesito en querys hacer operaciones con fechas. Pero gracias por la ayuda de ustedes.
From: jgal...@mh.gob.sv
To: jav...@googlegroups.com
Subject: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatement
Date: Mon, 17 Sep 2007 13:54:14 -0600
Octavio, no entiendo que quieres decir con "caiga los datos al campo que necesitas".
No se si te refieres a que en el PreparedStatement utilice el metodo ps.setString(......). Quiero que comprendas que el campo en la base de datos es tipo Date y lo que quiero es grabarle a ese campo la fecha y la hora.
Jhon Elvis, si no uso el prepared, entonces lo hago con el Statement y concateno los datos?
si tu tipo de dato es Date en la base de datos, no creo que reconozca la hora, para eso existe el tipo de dato timestamp, al usar el preparedstatement este verifica el tipo de dato que soporta tu tabla y hace cast al valor que le estas pasando, como dice el anterior mensaje podrias realizar la operacion sin usar el prepared y colocar los datos concatenando y grabar.
Jhon ElvisFrom: jgal...@mh.gob.svTo:
jav...@googlegroups.comSubject: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatementDate: Mon, 17 Sep 2007 13:54:14 -0600
Octavio, no entiendo que quieres decir
con "caiga los datos al campo que necesitas".
No se si te refieres a que en el
PreparedStatement utilice el metodo ps.setString(......). Quiero que
comprendas que el campo en la base de datos es tipo Date y lo que quiero es
grabarle a ese campo la fecha y la hora.
Tampoco deseo convertir ese campo a tipo
String en la base de datos porque necesito en querys hacer operaciones con
fechas. Pero gracias por la ayuda de ustedes.
De:
Utilizo
lo siguiente:
luego el :
ps.setDate(1, fechaSys)
2007-08-23
00:00:00
Gracias
por los comentarios.
Prueba algunos de los nuevos servicios en línea que te ofrece Windows Live Ideas: tan nuevos que ni siquiera se han publicado oficialmente todavía.
Pruébalo
_________________________________________________________________
Consigue el nuevo Windows Live Messenger
http://get.live.com/messenger/overview
Supongo que no funciona porque el preparedStatement espera como argumento un
objeto java.sql.Date y este siempre veo que lo pone como yyyy-mm-dd.
Gracias por los aportes.
-----Mensaje original-----
De: jav...@googlegroups.com [mailto:jav...@googlegroups.com] En nombre de
jhon elvis
Enviado el: miércoles, 19 de septiembre de 2007 11:42
Israel me parece fabulosa tu idea. Solo tengo una pregunta, como le haces para usar to_date(('19/09/2007 12:30', 'dd/mm/yyyy HH24:MI') en un preparedStatement.
Recuerda que en preparedStatement se espera en el metodo setDate un objeto java.sql.Date.
Yo creo que me han entendido mal la pregunta. Se puede hacer de muchas maneras pero con statement y yo lo quiero hacer con preparedStatement.
Pero gracias por los comentarios, si estoy errado por favor corregirme.
Israel me parece fabulosa tu idea. Solo tengo una pregunta, como le haces para usar to_date(('19/09/2007 12:30', 'dd/mm/yyyy HH24:MI') en un preparedStatement.
Recuerda que en preparedStatement se espera en el metodo setDate un objeto java.sql.Date.
Yo creo que me han entendido mal la pregunta. Se puede hacer de muchas maneras pero con statement y yo lo quiero hacer con preparedStatement.
Pero gracias por los comentarios, si estoy errado por favor corregirme.
De: jav...@googlegroups.com [mailto: jav...@googlegroups.com ] En nombre de Israel Luna
Enviado el: miércoles, 19 de septiembre de 2007 16:02
Para: jav...@googlegroups.com
Asunto: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatement
La manera más facil de hacerlo, es darle formato de oracle, me imagino que tu ya tienes las horas y minutos, sino, pues lee mas de java, conlo que te dicen del SimpleDateFormat, o GregorianCalendar, pero ya que las tengas, solo haces algo asi:
to_date('19/09/2007 12:30', 'dd/mm/yyyy HH24:MI') ,
con eso ya forzas el formato, para que te lo almacene la base de datos.
Saludos.
----- Mensaje original ----
De: jhon elvis <je...@hotmail.com>
Para: jav...@googlegroups.com
Enviado: miércoles, 19 de septiembre, 2007 12:41:52
Asunto: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatement
revisando la informacion tiene razon pablo, tal vez puedas utilizar la clase SimpleDateFormat para dar formato a tu dato y usar el preparedStatementJhon ElvisDate: Tue, 18 Sep 2007 14:30:42 -0300From: pablo...@gmail.comTo: jav...@googlegroups.com Subject: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatementEn realidad en Oracle:DATE --> Fecha y Hora granularidad segundosTIMESTAMP --> Fecha y Hora granularidad fracciones de segundos
LinkSlds.Pablo MolnarEl día 18/09/07, jhon elvis <je...@hotmail.com> escribió:
si tu tipo de dato es Date en la base de datos, no creo que reconozca la hora, para eso existe el tipo de dato timestamp, al usar el preparedstatement este verifica el tipo de dato que soporta tu tabla y hace cast al valor que le estas pasando, como dice el anterior mensaje podrias
realizar la operacion sin usar el prepared y colocar los datos concatenando y grabar.
Jhon ElvisFrom: jgal...@mh.gob.svTo:
jav...@googlegroups.com Subject: [JavaSOS] Re: Pregunta sobre java.sql.Date y PreparedStatementDate: Mon, 17 Sep 2007 13:54:14 -0600
SimpleDateFormat is a concrete class for formatting and
parsing dates in a locale-sensitive manner. It allows for formatting
(date -> text), parsing (text -> date), and normalization.Ya resolvi el problema con java.sql.TimeStamp. Gracias por toda la ayuda.
Manda en tu cadena un SYSDATE y el oracle hara los suyo