Проблема в том, что ваша дата это
$registered_year2 =". $registered_year .-00-00 00:00:00";
Посмотрите, если $registered_year=2019
, то у вас есть . 2019 .-00-00 00:00:00
с точками.Ваше смешивание конкатенации с интерполяцией.И дата-время MySQL не распознает эту дату как действительную.
Например, я выбрал 2018, а затем хочу сохранить ее 2018-00-00 00: 00: 00
Ну, чтобы быть уверенным, 2018-00-00 00:00:00
это не . 2019 .-00-00 00:00:00
Это простая опечатка.
Далее
2018-00-00 00:00:00
недействительная дата.Так что не получится.Но давайте посмотрим на это:
хочу сохранить год только в моей базе данных date_created с типом currenttimestamp
Datetime не является временной меткой.А если вам нужен год из поля даты и времени, вы можете использовать YEAR(datetime_field)
как в части запроса, так и в местах запроса.
Если вам нужен его из отметки времени, вы можете преобразовать отметку времени в DateTime
YEAR(FROM_UNIXTIME(timestamp_field))
Поэтому, если вы сохраняете текущую дату и время (NOW ()), хотя я предпочитаю делать это в PHP, потому что у БД есть свой собственный часовой пояс, отличный от PHP.Тогда вы можете просто сделать это, когда вам нужен год.
Приветствия.