2017-12-27 156 views
0

我們如何比較symfony3下的日期和oracle數據庫?在symfony3下使用日期和Oracle

$q = $this->createQueryBuilder("u")->leftJoin("u.ru", "r") 
    ->leftJoin("u.emp", "e") 
    ->where("(r.a = 2 or r.a =4) and u.dat > :first and u.dat < :last and e.m=:m") 
    ->orderBy("r.id") 
    ->setParameter("matricule", $personne->getMatricule()) 
    ->setParameter("first", $first) 
    ->setParameter("last", $last); 
return $q->getQuery()->getResult(); 

但這不起作用。我有這樣的錯誤

General error: 1861 OCIStmtExecute: ORA-01861: literal does not match format string (ext\pdo_oci\oci_statement.c:148)

+0

我不使用symfony3;但是,這樣的錯誤消息表明您使用了無效的格式掩碼。例如:to_date('2017/12/27','dd.mm.yyyy')會引發該錯誤。您應該使用to_date('2017/12/27','yyyy/mm/dd')。現在,我不知道如何在代碼中使用它(也許它與「first」和「last」有關)? – Littlefoot

+0

我假設symfony像Littlefoot所說的那樣正確地傳遞數據類型。那麼,u.dat是約會嗎? symfony中'$ first'和'$ last'的日期是?如果不是,那麼您正在做一個隱式轉換,並依賴於您的NLS_DATE_FORMAT,您不應該這樣做,因爲它會根據客戶端的情況進行更改。 – Ben

+0

Ben,** u.date **在日期TYPE中。 ** $ first **和** $ last **,我用datetime()聲明它, –

回答