2012-01-12 3 views
4

데이터베이스의 날짜를 activerecord를 사용하여 지금부터 1 주일까지 비교하는 데 문제가 있습니다. 시작일이 1 주일 미만인 일정 목록을 반환하려고합니다.Codeigniter 데이터베이스 날짜 비교

event_start_date은 2011-06-30 9시 0분 0초

$this->db->select('event_id,title,event_start_date,location'); 
$this->db->where('event_start_date <=',DATE_ADD(NOW(),INTERVAL 7 DAYS)); 
$query = $this->db->get('sd_events'); 

이에 대한 올바른 구문을 작동하는 데 문제의 형식으로, 어떤 도움

답변

3

:-) 주시면 감사하겠습니다 두가지. 첫째, 당신은 다음과 같이 따옴표에 where 절을 가하고 시도가 :

$this->db->where('event_start_date <=','DATE_ADD(NOW(),INTERVAL 7 DAYS)'); 

둘째, 필요한 경우 것이 바로 어디 기능을 사용하여 생략하고이 같은에서 전체 쿼리를 넣어 :

$this->db->query('SELECT event_id,title,event_start_date,location FROM sd_events WHERE event_start_date <= DATE_ADD(NOW(),INTERVAL 7 DAYS)'); 
+1

그래, 내가 한 가지 큰 쿼리를 써서 끝내었고, 그런 식으로 그것을했다, 그것을 별도의 라인으로 나누는 것이 부끄럽기 때문에 읽는 것이 훨씬 쉬워진다. –

+0

where()를 사용하는 hateof는 무엇입니까? 느린 코드로 인한 것입니까? – Exegesis

2

당신은 단지 수 ->를 사용하여 함수를 승인하려면 첫 번째 인수를 사용하십시오.

$this->db->select('event_id,title,event_start_date,location'); 
$this->db->where('event_start_date <= DATE_ADD(NOW(),INTERVAL 7 DAYS)', null); 
$query = $this->db->get('sd_events'); 

이것은 WHERE 절에 그냥 넣어야합니다. 그렇지 않으면 평가하지 않는 작은 따옴표로 "DATE_ADD"를 래핑합니다.