我有一个包含代码的实体存储库
$qb = $this->createQueryBuilder('tdd');
$qb->select('tdd')
->where($qb->expr()->eq('tdd.disable_date', ':dat'))
->setParameter('dat', new \DateTime());
return $qb->getQuery()->getOneOrNullResult();
并且仅包含一个成员的实体 (disable_date)
/**
* @ORM\Column(type="date", unique=true, nullable=false)
* @ORM\Id()
*/
private $disable_date;
当我尝试检查今天的日期是否在数据库中时,上面的代码返回 NULL。 数据库中的日期存在。 什么鬼?
最佳答案
因为 new DateTime()
创建的对象与此类似:
对象(日期时间)#1 (3) {
[“日期”]=>
字符串(26)“2018-04-12 07:24:34.697668”
[“timezone_type”]=>
整数(3)
[“时区”]=>
string(10) "美国/太平洋"
}
并且您试图将准确的日期与时间(包括秒
和毫秒
)相匹配。这就是为什么结果为 null
检查没有h:i:s
的日期
关于mysql - Symfony - 选择日期 = 今天的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49798362/