Как вставить дату (ymd) в базу данных MySQL? - PullRequest
1 голос
/ 13 августа 2010

У меня есть поле типа даты в MySQL.Когда я пытаюсь вставить любую дату в это поле с помощью PHP, используя следующий запрос, он сохраняет 0000-00-00 в этом поле.

Например:

UPDATE test SET dob=2000-09-20 WHERE id=3

Ответы [ 2 ]

6 голосов
/ 13 августа 2010

Просто укажите дату.

UPDATE test SET dob='2000-09-20' WHERE id=3

В вашем запросе ... 2000-09-20 ... будет интерпретироваться как математическое выражение. В результате получается число 1971. В поле даты и времени число будет заполнено нулями до 6, 8, 12 или 14-значного числа, поэтому 1971 станет 001971. Затем это число интерпретируется как формат ГГММДД, поэтому "год 00 месяц 19 день 71", что недействительно. Таким образом, специальное значение 0000-00-00 сохраняется.

3 голосов
/ 13 августа 2010

Обычно вы должны использовать '2000-09-20' в качестве значения для вставки. Как ваша система различает то, что у вас есть, и целочисленное (не датированное) значение 1971, которое вы получите, вычитая 9 и 20 из 2000?

UPDATE test SET dob = '2000-09-20' WHERE id = 3

Подробнее см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...