Изменить формат даты при добавлении условия where в запрос

База данных:

   | 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

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

-2

Решение

1535558400 выглядит как метка времени UNIX, которая соответствует 29 августа 2018 года 16:00. Вы можете преобразовать его в Y-m-d следующее:

DATE(FROM_UNIXTIME(1535558400))

Это даст вам 2018-08-29 которую вы можете сравнить с другой строкой даты, имеющей такой же формат.

0

Другие решения

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

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

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

0

Вам нужно использовать

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

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

выберите convert (varchar (4), year (ColumnDate)) + ‘/’ + convert (varchar (4), month (ColumnDate)) + ‘/’ + convert (varchar (4), day (ColumnDate)) из YourTable

-2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector