Изменить формат даты при добавлении условия where в запрос - PullRequest
0 голосов
/ 18 декабря 2018

База данных:

   | date_paid (int) |
    1535558400
    1539532800

Я пытаюсь запросить следующее, но получаю ошибку синтаксиса SQL для части даты.

    $id = $this->input->post('id');
    $date = $this->input->post('date');

    $this->db->where('id',$id);
    $this->db->where('DATE_FORMAT(date_paid, "%Y-%m-%d")',$date);
    $query=$this->db->get('payments');
    $result=$query->row();

Есть ли способ изменить формат датыстолбца date_paid, чтобы я мог сравнить его с данными $this->input->post('date')?

Журнал ошибок:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2018-10-30'' at line 4

Я пытаюсь изменить существующее веб-приложение, поэтомунасколько это возможно, я не хочу менять тип данных столбца date_paid

заранее спасибо

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Вам необходимо использовать

DATE_FORMAT (FROM_UNIXTIME (date_paid), '% Y-% m-% d') AS 'date_formatted'

, поэтому что-то вроде:

$id = $this->input->post('id');
$date = $this->input->post('date');

$this->db->select("DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') AS date_formatted");
$this->db->from('payments');
$this->db->where("DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') = " . $date, '', false);

$result = $q->row();
0 голосов
/ 18 декабря 2018

Используйте синтаксис ниже

выберите конвертировать (varchar (4), год (ColumnDate)) + '/' + convert (varchar (4), месяц (ColumnDate)) + '/' + convert (varchar (4), день (ColumnDate)) от YourTable

0 голосов
/ 18 декабря 2018

Пожалуйста, используйте как это

 DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') AS 'date_changed'

Вы можете сослаться здесь

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