2016-05-25 2 views
0

Я хотел бы принести ряд, который поставляется в определенном диапазоне датПолучить записи между диапазоном дат

Моего запрос:

SELECT * FROM `table` WHERE ((s_tdate <= '2016-05-26' OR `e_expiredate` >= '2016-05-26') OR (`s_tdate` <= '2017-09-11' AND `e_expiredate` >= '2017-09-11') OR (`s_tdate` >= '2016-05-26' AND e_expiredate <='2017-09-11')) 

    $this->db->select(*); 
    $this->db->where("((s_tdate <='$start_date' AND e_expiredate >= '$start_date')"); 
    $this->db->or_where("(s_tdate <='$end_date' AND e_expiredate >='$end_date')"); 
    $this->db->or_where("(s_tdate >='$start_date' AND e_expiredate <='$end_date'))"); 
    $query = $this->db->get('table'); 

Am не получив никакого результата.

Пожалуйста, помогите

+0

ставим OR условия между .. например. (s_tdate <= '2016-05-26' AND 'e_expiredate'> = '2016-05-26') ИЛИ (' s_tdate' <= '2017-09-11' И 'e_expiredate'> = '2017-09- 11 ') ИЛИ ('s_tdate'> =' 2016-05-26 'И e_expiredate <=' 2017-09-11 ') –

+0

спасибо. Это была ошибка в моем вопросе. Я положил OR в свой запрос, но не получил результата Правильно ли этот запрос? – youv

+0

вам нужно дважды проверить свой db, может быть, нет записей, найденных между вашей датой, в противном случае запрос совершенен сейчас –

ответ

1

поставил ИЛИ условия между ..

e.g. (s_tdate <= '2016-05-26' AND e_expiredate >= '2016-05-26') OR (s_tdate <= '2017-09-11' AND e_expiredate >= '2017-09-11') OR (s_tdate >= '2016-05-26' AND e_expiredate <='2017-09-11') 

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

В основном это даст запрос как s_tdate и e_expiredate в заданном диапазоне и укажите строку, которая входит в определенный диапазон дат

$this->db->select(*); 
$this->db->where("s_tdate BETWEEN $start_date AND $end_date"); 
$this->db->where("e_expiredate BETWEEN $start_date AND $end_date"); 
$query = $this->db->get('table'); 
+0

Большое вам спасибо. – youv

+0

Если я сомневаюсь, я прокомментирую, пожалуйста, помогите.Спасибо еще – youv

+0

Привет, я получаю ошибку при использовании этого запроса, предположим, что если я дам 2016 и 2020 год, так как дата начала и окончания дня в базе данных имеет записи с максимальным значением 2019 enddate, 2019 как результат. Я не должен получать никакого результата на самом деле. – youv

Смежные вопросы