我尝试使用
进行数据库查询$position = $repository->findBy(
array('id' => $profileId,'datum' => '10.07.2011'),
array('timestamp', 'DESC')
);
数据库看起来像
id haveInCircles inOtherCircles datum timestamp
1 24 14 11.07.2011 1310403840
1 20 10 10.07.2011 1310317440
1 10 5 09.07.2011 1310317440
1 25 17 12.07.2011 1310468838
我得到的结果总是进入数据库的最后一天的数据。在这种情况下'12 .07.2011'。
答案 0 :(得分:4)
将varchar用于日期可能是最糟糕的方法。将基准字段更改为日期或日期时间,相应地更改模型,以便doctine字段为日期,然后执行以下操作:
$position = $repository->findBy(
array('id' => $profileId,'datum' => new Datetime('2011-07-10')),
array('timestamp' => 'DESC')
);
http://www.php.net/manual/en/datetime.construct.php
简要介绍我建议审阅的架构实践: http://brixican.blogspot.ca/2011/04/5-mysql-best-practices-when-designing.html
答案 1 :(得分:1)
如果'datum'的数据库字段是datetime,请尝试使用:2011-07-10格式:-)
Symfony2 articles
答案 2 :(得分:0)
我同意其他人您应该将字段更改为Datetime格式,但是如果您在开发人员模式下使用Symfony2,则可以检查与您的Doctrine ORM查询构建器对应的SQL日志(数据库查询),并从那里您可能知道您的查询构建器有什么问题