Symfony2学说

时间:2011-07-12 12:13:28

标签: doctrine symfony

我尝试使用

进行数据库查询
$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'。

3 个答案:

答案 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日志(数据库查询),并从那里您可能知道您的查询构建器有什么问题