Как использовать предложение not between в codeigniter

Я не знаю, что не так с этим запросом. Я получаю сообщение об ошибке. Может, пожалуйста, кто-нибудь расскажет мне об этом.

$this->db->where("ac.booking_date", $booking_date); 
$this->db->where(''.$booking_date .' NOT BETWEEN ac.booking_date AND ac.end_date', null, false); 

A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10:00 NOT BETWEEN ac.booking_date AND ac.end_date ORDER BY ac.id DESC' at line 7

SELECT ac.*, p.first_name, p.last_name FROM anb_crm_bookingsac LEFT JOIN anb_crm_users_personal_infop ON p.user_id = ac.created_by WHERE ac.email = '[email protected]' AND ac.record_id = '36841' AND ac.booking_date = '2019-05-29 10:00' AND 2019-05-29 10:00 NOT BETWEEN ac.booking_date AND ac.end_date ORDER BY ac.id DESC

Filename: models/BookingModel.php

Line Number: 245

По логике, если вы сравниваете booking_date с датой ввода, то какой смысл использовать второй оператор where?

Rahul 29.05.2019 13:50
$this->db->where(" "'.$booking_date .'" NOT BETWEEN ac.booking_date AND ac.end_date", null, false); Исправьте это
Rahul 29.05.2019 13:52

Мне нужно проверить предыдущее бронирование, например, с 10:00 до 12:00, так что следующее не должно быть между этим, например, с 11:00 до 1:00.

Akshay 29.05.2019 13:52

Пожалуйста, обновите свой вопрос с лучшими разъяснениями или логикой, которую вы хотите, потому что, как мы видим, вы ничего не написали.

Rahul 29.05.2019 13:54

сначала отформатируйте дату.

Rahat Hameed 29.05.2019 13:58

Возможный дубликат использование BETWEEN в условии WHERE

stefo91 29.05.2019 13:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
229
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы забываете кавычки во 2-м WHERE. Замените его следующим кодом

 $this->db->where("ac.booking_date", $booking_date); 
 $this->db->where('"'.$booking_date .'" NOT BETWEEN ac.booking_date AND ac.end_date', null, false);

или просто: $this->db->where("$booking_date NOT BETWEEN ac.booking_date AND ac.end_date", null, false);

Vickel 29.05.2019 14:20

зачем вам между собой? просто используйте '> < и ='

stefo91 29.05.2019 14:24

@Vickel Могу ли я использовать функцию даты с ac.booking или ac.end_date для извлечения только времени.

Akshay 29.05.2019 14:27

да, в избранном пишите DATE_FORMAT(ac.booking,'%H:%i:%s')

C.Pietro 29.05.2019 14:29

@Akshay, ты должен задать новый вопрос по этому поводу, в любом случае вот некоторая информация: mariadb.com/kb/en/library/между-и

Vickel 29.05.2019 14:30

Другие вопросы по теме