Хотите сохранить только год из отметки времени в базе данных - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу сохранить только год в моей базе данных как date_created с типом currenttimestamp

Я получаю значение года из select html.Получив значение, я передам его контроллеру

Вот мой код

$registered_year = sanitize($this->input->post('registered_year'));
$registered_year2 =". $registered_year .-00-00 00:00:00";
$app_type = 1;
$ref_no = generate_reference_number();

$this->Model->dealer_renew_save($account_id,$req_id,$ref_no,$app_type,$registered_year2);

$data = [
         'success'=>1,
         'message'=> 'Application Successfully Renewed.'
         ];

generate_json($data);

Например, я выбрал 2018, затем хочу сохранить 2018-00-00 00:00:00

это спасает 0000-00-00 00:00:00

В чем проблема?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Есть две вещи, которые можно изменить.1-й по ответу ArtisticPhoenix

$registered_year2 = $registered_year . "-00-00 00:00:00";

убедитесь, что дата 2018-00-00 00:00:00

Другое дело, что измените ваше поле type с timestamp на datetime

0 голосов
/ 06 февраля 2019

Проблема в том, что ваша дата это

$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.Тогда вы можете просто сделать это, когда вам нужен год.

Приветствия.

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