none
Validar Fechas RRS feed

  • Pregunta

  • Hola espero me puedan orientar
    Estoy subiendo un archivo de excel a sql por medio de un dts.

    El detalle es que el archivo de excel cuenta con un campo de fecha el cual no tiene el mismo
    formato en todos los registros. Hay varios con formato mm/dd/yyyy y otros con dd/mm/yyyy

    Al vaciarlos en una tabla me los inserta incorrecto.

    Asi debe quedar:

    06/18/2012 Este es correcto 18 de Julio

    10/07/2012 Este debe quedar como 10 de Julio


    Hay alguna forma en el dts de que yo pueda validar esa situacion? que toda la deje en el mismo formato.

    El archivo de excel que es la causa de todo este problema no tengo permitido abrirlo ni modificarle el formato.

    Gracias

    Mayra

    lunes, 16 de julio de 2012 18:06

Respuestas

  • Hola.

    Si no sabes el formato de partida y este puede variar de un registro a otro, sólo te queda intentar convertirlo y si falla cambiar el formato antes de incluirlo. Te sugiero que lo importes como texto a una tabla SQL Server y ahí le trates de dar el formato con el apoyo de la función "IsDate".

    Si no lo logras, nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    • Marcado como respuesta mayra.perezl miércoles, 25 de julio de 2012 2:16
    martes, 24 de julio de 2012 15:20
    Moderador

Todas las respuestas

  • Hola.

    Si no sabes el formato de partida y este puede variar de un registro a otro, sólo te queda intentar convertirlo y si falla cambiar el formato antes de incluirlo. Te sugiero que lo importes como texto a una tabla SQL Server y ahí le trates de dar el formato con el apoyo de la función "IsDate".

    Si no lo logras, nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    • Marcado como respuesta mayra.perezl miércoles, 25 de julio de 2012 2:16
    martes, 24 de julio de 2012 15:20
    Moderador
  • Gracias por la ayuda  :)

    Mayra

    miércoles, 25 de julio de 2012 2:17
  • Hola,

    Hola,

     

    Hay muchas formas de solucionar este problema, como menciona el compañero puede insertarlo en una tabla plana y hacer la transformación en la base de datos.

    Otra opción es que utilices un Script component y por medio de una pequeña lógica de programación realices la transformación.

    Ten en cuenta que puedes tener inexactitud de fechas cuando tengas formato DD/MM/YYYY o MM/DD/YYYY si el día es menor a 13, debes de notificar eso a los usuarios finales ya que eso te puede generar muchos problemas.

    Imagina que tienes en tu proceso la prioridad de manejar la fecha DD/MM/YYYY y la fecha origen esta en formato MM/DD/YYYY, como no sabes los formatos puedes guardar datos erróneos, ejemplo.

    11/02/2006 si aplicas un isdate validando con el formato DD/MM/YYYY la fecha es validad, pero el significado es distinto, porque la fecha real es 2 de noviembre del 2006 y tu estas guardando 11 de febrero del 2006.


    ahias

    viernes, 17 de agosto de 2012 0:56