0

나는 데이터베이스에서 타임 스탬프/timeranges를 선택하는 권리 zf2 구문을 찾고 있어요. 나는 진술을하는 법을 안다.zf2 db sql 어디 전에 우리의 datetime 전에

where = new Where(); 
$where->lessThan("datecolumn",$vardate); 

내가 2 시간보다 오래된 모든 레코드를 선택합니다 그러나 초과]()와 작음은() 타임 스탬프/날짜와 함께 작동하지 않는 것 같습니다. 그래서 젠드 프레임 워크 2로 날짜를 선택하는 올바른 방법은 무엇입니까?

들으, 난 정말

답변

3

이 (단지 샘플) 잘 작동 -

$select = new Select('album'); 

$created = date('Y-m-d H:i:s', strtotime("-2 hours")); 

$where = new Where(); 
$where->lessThanOrEqualTo('created', $created); 
$select->where($where); 

$resultSet = $this->tableGateway->selectWith($select); 
0

당신의 매퍼 방법이 뭔가를 시도 당신의 도움을 주셔서 감사합니다 :

$selectRecords = $this->tableGateway->getSql()->select(); 
$selectRecords->columns(array('id')) 
       ->where->greaterThanOrEqualTo('dateColumn', $startDate) 
        ->lessThanOrEqualTo('dateColumn', $endDate) 

; $ resultSet = $ this-> tableGateway-> selectWith ($ selectRecords);

+0

같은 문제 ... 날짜가 작동하지 않습니다! – Manuel

+0

date, datetime, timestamp가 예상대로 작동합니다. 'dateColumn','$ startDate' 및'$ endDate'의 날짜 형식을 확인하십시오. 2 시간 미만의 날짜 값을 가진 레코드가 필요하므로 열이 datetime이어야합니다. 그렇다면 형식은 '2014-05-06 10:20:30'과 같아야합니다. –

+0

죄송합니다. 나는 '날짜 열'과 '$ vardate'를 의미했습니다. –