Вопрос

Верно.Я вставлял данные в базу данных MySQL и использовал следующее для создания метки времени:

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

К сожалению, день и месяц были перепутаны, и ниже указана правильная временная метка.

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

Это около 5000 записей.Как проще всего выполнить массовое обновление и исправление?

Большое спасибо!

Это было полезно?

Решение

Позволял ли механизм базы данных вставлять невозможные даты или у вас не было даты с полем «День» > 12?

В любом случае вы, вероятно, можете исправить это с помощью одного оператора обновления, но синтаксис зависит от используемого вами ядра базы данных.

Для MySQL вы должны использовать:

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

Другие советы

Вы не можете.В качестве пояснения приведу пример:

Предположим, вы имели в виду:День 13, месяц 2, год 1990, но это было прочитано как:День 2, 13 месяца, 1990 год.День 2, месяц 1, 1991 год.

Но предположим, что вы имели в виду:День 1, месяц 2, год 1991 года. Это было бы прочитано как:День 2, месяц 1, 1991 год.

Итак, если вы видите в базе данных день 2, месяц 1, 1991 год, откуда он взялся?

Это все равно, что сказать: я возвел целое число в квадрат, и результат — 36.С чего я начал, -6 или 6?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top