gpt4 book ai didi

mysql - 在 Symfony2 和 Doctrine 的 DateTime 字段中仅按时间搜索

转载 作者:IT王子 更新时间:2023-10-29 00:31:16 25 4
gpt4 key购买 nike

我使用 Symfony 2 和 Doctrine。在我的数据库 MySQL 中,我有一个类型为 DateTime 的字段。在我的存储库文件中,通过使用 QueryBuilder,我想在我的 Where 中仅按日期(无时间)和时间(无日期)在此表中搜索子句。

我怎样才能意识到这一点?

最佳答案

您可以扩展和注册doctrine2 中的DATE() 函数来使用DQL。检查这个solution .

现在,如果您不想扩展学说2,这里是我的解决方案:

根据日期搜索:

你可以得到一天开始的日期时间和结束的日期时间之间的间隔,我已经回答了here .

这是约会最干净的解决方案(我认为)!

现在另一个简单的解决方案是将日期时间字段作为字符串与 LIKE 运算符进行比较,因此您也可以这样做:

$query = $repository->createQueryBuilder('u')->where('u.createdAt LIKE :date')
->setParameter('date', '2013-05-06%')
->getQuery();

$users = $query->getResult();

按小时搜索:

我不知道使用 DQL 的另一种解决方案,而不是作为字符串比较(除非您使用 DATE 扩展学说),这里是代码:

$query = $um->getRepository()->createQueryBuilder('u')->where('u.createdAt LIKE :date')
->setParameter('date', '____-__-__ 10:45:__')
->getQuery();

提醒您,“_”(下划线)表示 1 个字符(以及任何字符!)。

选择您的解决方案;)

关于mysql - 在 Symfony2 和 Doctrine 的 DateTime 字段中仅按时间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17153245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com