CI 묻고 답하기

제목 날짜조건절 엑티브레코드로 표현시
글쓴이 ci세상 작성시각 2009/09/08 12:53:31
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 24608   RSS

현재 date 타입은 datetime 입니다. 엑티브 레코드로 다음 쿼리구문을 표현하려고 하니 안되네요 ~~

<일반쿼리>
$query = $this->db->query("select * from member where date_format(date, '%Y%m%d')= '20090908'");
=> 정상작동

<엑티브레코드>
$this->db->where(array(date_format(date, '%Y%m%d') => '20090908'));
=> 오류


가급적 엑티브 레코드로 많이 담으려고 하는데요 안될경우 그냥 일반쿼리로 빨리 구현해 두고 이렇게 질문을 따로 올립니다.^^

일반쿼리가 먹는 CodeIgniter 정말로 대단한 프레임워크라고 개인적으로 인정합니다.^^
 다음글 oracle 8 접속 방법 질문 (6)
 이전글 ci 페이지네이션 Pagination Class 현재페... (2)

댓글

변종원(웅파) / 2009/09/08 13:28:40 / 추천 0
$where = "date_format(date, '%Y%m%d') = '20090908'";
$this->db->where($where);
이렇게 하면 될거 같은데요? (테스트 안해봤음. ㅋ)
ci세상 / 2009/09/08 15:14:51 / 추천 0
감사합니다. 이렇게 따로 빼니 잘 되네요 ~~ 역시 엑티브 레코드로 표현해 두어야 코딩한 맛이 납니다. ^^
마냐 / 2009/09/08 15:20:48 / 추천 0

> $this->db->where("date_format(date, '%Y%m%d') =", '20090907');
> $this->db->where(array("date_format(date, '%Y%m%d') =" => '20090908'));
이것도 됩니다.

위 방식들이나 복잡한 쿼리는 안될때가 있는데 그럴때는..
> $this->db->where($where, null, false);

대부분 액티브레코드에서 false 를 먹여주면 안되는 쿼리가 없기는 합니다만..
자동으로 테이블명을 백틱(`) 으로 감싸 보호하지 않는다는 패널티 있어서
일일이 수동으로 해줘야 한다는 귀차니즘이...

ci세상 / 2009/09/08 15:39:34 / 추천 0
히히 마냐님 2번꺼 바로 적용했습니다. 한줄에 처리하기가 왠지 좋지요 ~~

근데 "=" 이놈을 꼭 넣어줘야 하네요 ^^