none
Problema fechas ingles con ODBC access RRS feed

  • Pregunta

  • Buenas tardes,
    Tengo una aplicacion .net 2.0 que usa una base de datos access, mediante odbc ej. "DSN=dominio.org.db".
    Por motivos ajenos a mi, el servidor donde esta alojada(2003server) la aplicación esta en ingles, por lo que todas las fechas salian en formato ingles (mes//dia//año), tras pedir un cambio de configuración ahora aparecen en formato europeo(dia-mes-año),
    pero no se porque motivo al hacer una inserción, si le meto una fecha en formato correcto, (dia/mes/año), la pone al reves (mes/dia/año). Por ejemplo le meto la fecha de hoy 06/04/2009 16:50:50, y la introduce como 04 /06/2009 16:50:50

    Como puedo arreglar esto?. En otro servidor 2003 server que si esta en español, introduce las fechas correctamente.

    Un saludo
    lunes, 6 de abril de 2009 14:53

Respuestas

  • Hola,

        Yo tuve ese problema hace bastante tiempo, además, el problema se te acrecentará cuando intentes migrar la bbdd a otro tipo de gestor de bbdd ( sql, oracle, etcc... )

       Mi consejo, y con que me olvidé del problema fue guardando siempre las fechas en el formato: yyyymmdd

       Este formato lo reconocen todos los gestores de base de datos y no depende de la configuración del equipo.

       (No creo que te sea muy dificil hacer un replace en tus cadenas de fecha. )

    espero que te resuelva el problema.

    un saludo,

    raul

    RFID Lavanderia

    Lavanderia

    • Marcado como respuesta Pablogmu jueves, 28 de mayo de 2009 11:15
    sábado, 11 de abril de 2009 12:10

Todas las respuestas

  • Hola Pablo, cuando insertes una fecha utiliza la función format para darle el formato que tu desees, y además en la instrucción sql utiliza comillas simples (como si fueras a guardar una cadena de texto), de ese modo la fecha se guardará exactamente como tu lo requieras.

    Suerte
    martes, 7 de abril de 2009 10:45
  • Hola las fechas se almacenan en formato universal es decir "yyyy-MM-dd" ahora de acuerdo a la cultura que se tenga configurado esta presentacion puede variar, por ejemplo si cargas este dato en VB.NET para mostrarlo tendrias que usar un formateador o su sobrecargade formato EJ:

    dim vFecha as date
    
    MessageBox.Show(vFecha.ToString("dd-MM-yyyy"))
    Saludos
    Colabora con la comunidad,marca si la respuesta es la correcta, Gracias!. guisbert@blogspot.com
    • Propuesto como respuesta Kevin Guisbert viernes, 10 de abril de 2009 21:32
    viernes, 10 de abril de 2009 21:31
  • Hola,

        Yo tuve ese problema hace bastante tiempo, además, el problema se te acrecentará cuando intentes migrar la bbdd a otro tipo de gestor de bbdd ( sql, oracle, etcc... )

       Mi consejo, y con que me olvidé del problema fue guardando siempre las fechas en el formato: yyyymmdd

       Este formato lo reconocen todos los gestores de base de datos y no depende de la configuración del equipo.

       (No creo que te sea muy dificil hacer un replace en tus cadenas de fecha. )

    espero que te resuelva el problema.

    un saludo,

    raul

    RFID Lavanderia

    Lavanderia

    • Marcado como respuesta Pablogmu jueves, 28 de mayo de 2009 11:15
    sábado, 11 de abril de 2009 12:10
  • Hola que tal.

    Este tipo de problemas se solucionan utilizando el formato canónico para fechas, que no es otra cosa que listar tus fechas en el formato #aaaa/mm/dd#

    De esta manera, sin importar qué base de datos utilices y qué datos de localización tenga, tus fechas siempre se almacenarán como tu quieras.

    Yo utilizo una función similar a esto para el formatear las fechas de forma rápida. Claro está, es una versión bastante rudimentaria ya que utilizo las fechas como strings en vez de tipo date, pero seguramente podrás encargarte de esos menesteres =)


        Function FechaCanonica(ByVal Dia As String, ByVal Mes As String, ByVal Año As String) As String
            If Dia.Length < 1 Then Dia = "01"
            If Mes.Length < 1 Then Mes = "01"
            Return "#" & Año & "/" & Mes & "/" & Dia & "#"
        End Function



    Saludos
    jueves, 23 de abril de 2009 23:15
  • Hola Pablo:

    Yo creo que hay bastantes soluciones pero si te sirve de algo he creado un articulo de como Ordenar las Fechas , en cualquier tipo de formato

    Saludos  compañero este es el link AQUI


    Cualquier cosa con gusto te ayudare

    Suerte!!

    La verdadera sabiduría está en reconocer la propia ignorancia VicoNet
    martes, 12 de mayo de 2009 21:33
  • Muchas gracias a todos, ya resolvi el problema. Hay varias formas de hacerlo.
    Creo que la mas correcta es meter las fechas en formato #aaaammdd#, por ejemplo en mysql es obligatorio hacerlo asi..

    Saludos
    jueves, 28 de mayo de 2009 11:15