Question

Droit

. 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!

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top