Convertir VARCHAR a Date

publicado por: Anonymous

Buen día a todos.
Se de antemano que esta pregunta ya esta posteada en el sitio, sin embargo las soluciones que he probado me dan resultados no satisfactorios.
Mi situación es la siguiente.

Tengo una tabla (logs3) con varios campos de los cuales la Fecha (Date) se guarda como VARCHAR , ahora, he creado otro campo (Date2) con el tipo de datos DATE.

Como datos de posible interés:

  • La tabla tiene poco mas de 300,000 registros.

  • Los valores actuales en campo Date tiene el formato americano ‘M/D/YYYY’.

  • PHPMyAdmin 4.7.1 en XAMPP para Windows.

  • Instancia de Aurora DB

He probado con la sentencia:

UPDATE `logs3` SET `Date2`=  str_to_date(  `Date`, '%d/%m/%Y')

Y se ejecuta correctamente, pero solamente con los primeros 51163 campos. He verificado y antes así como después del registro 51163 la fecha se maneja de igual manera, formato y valor, nada cambia antes o después de ese registro.

Seguramente estoy pasando algo por alto. Les suplico su ayuda por favor.

Gracias de antemano.

solución

Entre risas penosas y palmadas a la frente he dado con la solución. Inclusive yo lo he especificado en la pregunta, pero muy estúpidamente lo he pasado por alto.

El formato que maneja el VARCHAR esta en formato AMERICANO M/D/YYYY.
Mi sentencia:

UPDATE `logs3` SET `Date2`=  str_to_date(  `Date`, '%d/%m/%Y')

Tiene el formato Europeo D/M/YYYY, por eso (supongo) al llegar a cierto registro en el que el segundo par de dígitos sobrepasa el valor de 12 la sentencia se detiene sin regresar error pues logro exitosamente modificar los otros 51163 registros.

Así que invirtiendo el parámetro de ‘%d/%m/%y’ a ‘%m/%d/%y’ se completan los 300 mil registros faltantes.

Gracias a todos por su tiempo y sana participación.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *