Вы можете понять причину вашей ошибки от официального documentation:
NO_ZERO_DATE режим влияет на то, разрешает ли серверу «0000-00-00» в качестве действительной даты. Его влияние также зависит от того, включен ли строгий режим SQL .
- Если этот режим не включен, допускается «0000-00-00», и вставки не выдают никаких предупреждений.
- Если этот режим включен, допускается «0000-00-00», а вставки выдают предупреждение.
- Если этот режим и строгий режим разрешены, «0000-00-00» недопустимо, а вставки создают ошибку, если IGNORE не указан как . Для INSERT IGNORE и UPDATE IGNORE разрешено «0000-00-00» , а вставки выдают предупреждение.
Как говорится, вы можете вставить 0000-00-00
даты с IGNORE
опцией. Это для вставки.
В вашем случае, все, что вам нужно сделать, это добавить NOT NULL
ограничение на ваши TIMESTAMP
поля, чтобы избежать значения по умолчанию 0000-00-00
следующим образом:
StartDate TIMESTAMP NOT NULL,
EndDate TIMESTAMP NOT NULL,
course_Update TIMESTAMP NOT NULL,
EDIT 1:
После вашего комментария вам необходимо отредактировать файл my.cnf, если вы находитесь в Linux или файле my.ini, если вы находитесь в Windows, чтобы включить строгий режим SQL. Вы найдете, как это сделать на SQL-mode
Я сделал то, что вы мне сказали, но он по-прежнему сталкивается с той же ошибкой. : S – Edrian
@Edrian, просто объявив свой стол, как вы сказали по вашему вопросу, и вы получили ту же ошибку? –
@Edrian вы используете linux или windows? –