mois de swap PHP et jour dans l'horodatage
Question
. Je suis l'insertion d'une charge de données dans une base de données MySQL et utilisé ci-après pour générer l'estampille temporelle:
$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);
Malheureusement, le jour et le mois ont été mélangés autour, et au-dessous est l'horodatage correct.
$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);
Il est d'environ 5 000 dossiers. Quelle est la meilleure façon de faire une mise à jour en vrac et la correction?
Merci beaucoup!
La solution
Est-ce que le moteur de base de données permet d'insérer des dates impossibles, ou ne vous avez une date avec le champ de jour> 12
Dans tous les cas, vous pouvez probablement le fixer avec une instruction de mise à jour, mais la syntaxe dépend du moteur de base de données que vous utilisez.
Pour MySQL, vous devez utiliser:
UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')
Autres conseils
Vous ne pouvez pas. En guise d'explication, je vais donner un exemple:
Supposons que vous vouliez dire: Jour 13, 2 mois, année 1990 Mais cela a été lu comme: Jour 2, 13 mois, année 1990 Depuis les mois de l'année ne montent à 12, ce serait traité comme: Jour 2, mois 1, année 1991
Mais supposons que vous vouliez dire: Jour 1, 2 mois, année 1991 Cela aurait été lu comme: Jour 2, mois 1, année 1991
Donc si vous voyez le jour 2, mois 1, année 1991 dans la base de données, qui est-elle venue?
C'est comme dire, je redressai un entier, et le résultat est 36. Ce qui ai-je commencé avec, -6 ou 6?