PHP mes y el día de intercambio de fecha y hora
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!
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?