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

error al insertar fechas en mysql

Estas en el tema de error al insertar fechas en mysql en el foro de Java en Foros del Web. Holas : Tengo un metodo que inserta fechas en una tabla de mysql, el problema esta en el formato de fecha que obtengo no es ...
  #1 (permalink)  
Antiguo 13/09/2005, 21:48
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
error al insertar fechas en mysql

Holas :

Tengo un metodo que inserta fechas en una tabla de mysql, el problema esta en el formato de fecha que obtengo no es el compatible de mysql.

obtengo la fecha larga ejemplo:

domingo 12 septirmbre 2005

y solo requiero

2005-09-12

Algna idea?

aqui el código:



Código PHP:
  c=ConnectionManager.getConnection();
              
PreparedStatement ps c.prepareStatement("INSERT INTO sms_proyectos (    fecha_captura, descripcion, monto, porcentaje, fecha_p_desicion, fecha_p_compra, owner) VALUES (?,?,?,?,?,?,?)");
                   
          
                      
            
ps.setString(1Proyecto.getDescripcion());
            
ps.setDouble(2Proyecto.getMonto());
            
ps.setInt(3Proyecto.getPorcentaje());
            
            
ps.setDate(4Proyecto.getFecha_p_desicion());
            
            
ps.setDate(5,  Proyecto.getFecha_p_compra());
            
ps.setString(6own);

           
            
ps.execute(); 
__________________
Aquí va la firma...
  #2 (permalink)  
Antiguo 13/09/2005, 21:50
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Mas vale que la fecha la insertes por el mismo SQL, MySQL tiene la funcion NOW() que inserta la fecha actual. por ejemplo

INSERT INTO TABLA (fecha) VALUES (NOW());

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 13/09/2005, 21:52
Avatar de ko^ke  
Fecha de Ingreso: septiembre-2001
Ubicación: México D.F.
Mensajes: 364
Antigüedad: 22 años, 7 meses
Puntos: 1
Gongafa:

Gracias por tan rápida respuesta, solo que tengo otras dos fechas en enviarle y es ahi dónde se complica.

Un saludo
__________________
Aquí va la firma...
  #4 (permalink)  
Antiguo 13/09/2005, 21:57
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Entonces tendras que conevretir la Fecha a el formato que soporta MySQL, si quieres ver como es el formato, solo haciendo una prueba inserta en la base de datos algun campo con la funcion NOW() y luego haces el SELECT correspondiente para que veas como la dejo, y debes seguir ese mismo formato a la hora de que formatees (valga la redundancia) la fecha que tienes en Java.

Para dar formato a Fechas existen clases como SimpleDateFormat, aqui te dejo la url a la definicion oficial de dicha clase

http://java.sun.com/j2se/1.4.2/docs/...ateFormat.html

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 14/09/2005, 08:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 41
Antigüedad: 18 años, 8 meses
Puntos: 0
fecha

Hola acá envío clase que te permite dar formato para grabar y rescatar de la base con el formato que tu quieras

package clases;
import clases.*;
import java.sql.*;
import database.*;
import java.util.*;
import java.util.Date;
import java.text.*;

public class formatea_fecha {
public String Devuelve;
private String Error;

public formatea_fecha() {
}

public void fecha_RecuperaBaseDato(String fechaM){
fechaM=fechaM.replace('-','/');
if (isDate(fechaM)){
Date fechaDate=new Date(fechaM);
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
Devuelve=sdf.format(fechaDate);
}else{
Devuelve="";}

//System.out.println("class formatea_fecha : - valor Fecha = "+fechaM);
return;
}

public void fecha_GrabaBaseDato(String fechaN){
try{
if (isDate(fechaN)){
SimpleDateFormat sdfD=new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat sdfG=new SimpleDateFormat("yyyy-MM-dd");
Devuelve=sdfG.format(sdfD.parse(fechaN));
}else{
Devuelve="";}

return;
} catch(Exception e) {
Error=e.getMessage();
e.printStackTrace();
System.out.println("Error : "+e);}
}

public boolean isDate(String fechax){
try {
java.util.Date fecha = new java.util.Date(fechax);
return true;
} catch(Exception e) {
return false;}
}
public java.lang.String getDevuelve() {
return Devuelve;
}
}
  #6 (permalink)  
Antiguo 14/09/2005, 13:14
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Muy buen aporte actitud ;)

Pero para cuando vuelvan a poner codigo por favor no se olviden de ponerlo entre bloques PHP para que este quede formateado, es mucho mas facil de leer

Código PHP:
package clases;

import clases.*;
import java.sql.*;
import database.*;
import java.util.*;
import java.util.Date;
import java.text.*;

public class 
FormateaFecha {
    public 
String devuelve;
    private 
String error;

    public 
FormateaFecha() {
        
super();
    }

    public 
void fechaRecuperaBaseDato(String fechaM){
        
fechaM=fechaM.replace('-','/');

        if (
isDate(fechaM)){
            
Date fechaDate=new Date(fechaM);
            
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
            
devuelve=sdf.format(fechaDate);
        } else {
            
devuelve="";
        }
    }

    public 
void fechaGrabaBaseDato(String fechaN){
        try{
            if (
isDate(fechaN)){
                
SimpleDateFormat sdfD=new SimpleDateFormat("dd/MM/yyyy");
                
SimpleDateFormat sdfG=new SimpleDateFormat("yyyy-MM-dd");
                
devuelve=sdfG.format(sdfD.parse(fechaN));
            }else{
                
devuelve="";
            }
        } catch(
Exception e) {
            
error=e.getMessage();
            
e.printStackTrace();
            
System.out.println("Error : " e);
        }
    }

    public 
boolean isDate(String fechax){
        try {
            
Date fecha = new Date(fechax);
        } catch(
Exception e) {
            return 
false;
        }

        return 
true;
    }   

    public 
String getDevuelve() {
        return 
devuelve;
    }

HAy la deje entre los blouqes de codigo y le quite algunas cosas que estaban de mas en el codigo y lo adapte para que siguiera el estandard de programacion que nos ensaña Java, recordemos que un buen programador Java ademas de programas debe hacerlo con forme a un estandar pre establecido ;) pero el codigo es exactamente el mismo, no cambie su funcionalidad

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
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 08:28.