Pregunta

Derecho. Estaba la inserción de una carga de datos en una base de datos MySQL y utiliza la siguiente para generar el sello de tiempo:

$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);

Por desgracia, el día y el mes se mezclaron alrededor, y por debajo de la marca de tiempo es correcta.

$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);

Se trata de unos 5.000 registros. ¿Cuál es la manera más fácil de hacer una actualización masiva y corrección?

Muchas gracias!

¿Fue útil?

Solución

¿El motor de base de datos permitirá insertar fechas imposibles, o no tiene ninguna fecha con el campo del día> 12

En cualquier caso, es probable que pueda solucionar con una instrucción de actualización, pero la sintaxis depende de la base de datos del motor que utilice.

Para MySQL se debería utilizar:

UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')

Otros consejos

No se puede. A modo de explicación, voy a dar un ejemplo:

Supongamos que quería decir: Día 13, mes 2, año 1990 Pero esto se lee como: Día 2, 13 meses, año 1990 Desde los meses en un año sólo llegan hasta 12, esto sería tratado como: Día 2, 1 mes, año 1991

Pero supongamos que quería decir: El día 1, mes 2, año 1991 Esto habría sido leído como: Día 2, 1 mes, año 1991

Así que si ves el día 2, 1 mes, año 1991, en la base de datos, que no viene?

Eso es como decir, I cuadrado un número entero, y el resultado es 36. ¿Cuál qué empecé con, -6 o 6?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top