php - Why is Symfony/Doctrine query giving me a different answer to debugged query with CURRENT_TIMESTAMP()? -
my deleted record not being filtered out.
the doctrine querybuilder expression is:
$q = $this->createquerybuilder('duty') ->select(array('duty')) ->where('duty.validfrom < current_timestamp() , (duty.deleted null or duty.deleted > current_timestamp())') ->orderby('duty.rank', 'asc') ->addorderby('duty.validfrom', 'desc') ->getquery(); i 6 results (value of 1 has deleted half hour ago.
i grab debugger , evaluate $q->getsql(). gives me:
select e0_.id id_0, e0_.name name_1, e0_.rank rank_2, e0_.rate rate_3, e0_.validfrom validfrom_4, e0_.deleted deleted_5, e0_.created created_6, e0_.updated updated_7 employmentduty e0_ e0_.validfrom < current_timestamp , (e0_.deleted null or e0_.deleted > current_timestamp) order e0_.rank asc, e0_.validfrom desc which run directly against postgres , 5 results deleted item filtered out.
the timezone php 'australia/sydney', postgres timezone (show timezone) set etc/gmt-10.
i set timezone = 'australia/sydney' in postgresql.conf timezone matches php setting. application has 1 timezone, fine.
the date of course set using ->setdeleted(new datetime()) uses php concept of now, whereas query done current_timestamp reason incongruence.
Comments
Post a Comment