如何在doctrine querybuilder中使用表達式mysql NOW()?表達式mysql NOW()in Doctrine QueryBuilder
回答
在Doctrine2中,您必須使用以下其中一項代替NOW()
。
此:
CURRENT_TIMESTAMP()
或者:
...
createQuery(...'WHERE x.date = :now')
->setParameter('now', new \DateTime('now'))
...
如果你想只有時間或只有日期使用其中的一個: CURRENT_TIME()
和CURRENT_DATE()
使用查詢生成器就應該是這樣的:
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', ':now')
)
->setParameter('now', '\'CURRENT_TIMESTAMP()\'');
注:參數設置額外的報價是需要得到CURRENT_TIMESTAMP()
功能工作。
或者乾脆找不到
$qb
->select('B')
->from('RandomBundle:Banana', 'B')
->where(
$qb->expr()->gt('B.expiresAt', 'CURRENT_TIMESTAMP()')
);
在第二個示例中,您可以直接在「where」調用內使用較短的'B.expiresAt> CURRENT_TIMESTAMP()'比較,而不是使用查詢生成器表達式 – Clamburger
我假定需要使用數據庫的時間,而不是某些前端Web服務器。備用選項是使用[resultset mapper/native query](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html),或者擴展Doctrine和編寫你自己的Doctrine \ ORM \ Query \ AST \ Functions。 – ficuscr
- 1. Symfony2 Doctrine querybuilder其中IN
- 2. Doctrine 2 DQL - 在QueryBuilder中嵌套表達式和函數
- 3. Symfony3 Doctrine querybuilder
- 4. 在Doctrine QueryBuilder中的MySQL DATETIME的Retreive date
- 5. doctrine dbal querybuilder as prepared statement
- 6. Doctrine QueryBuilder和concat問題
- 7. Symfony2 doctrine mysql IN查詢
- 8. 在Doctrine Querybuilder中使用`DATE()`
- 9. Doctrine querybuilder複雜規則
- 10. MySQL和Doctrine QueryBuilder從三個表中多個LEFT和INNER JOIN
- 11. Symfony2 Doctrine Querybuilder全部選中
- 12. FindOption vs QueryBuilder in typeorm
- 13. Where In Not - doctrine
- 14. 如何在Doctrine 2 DQL中使用now()?
- 15. groupBy在Doctrine QueryBuilder中使用別名
- 16. 多個表達式與IN
- 17. Doctrine 2.0 in production
- 18. ManyToMany與Doctrine的QueryBuilder和Symfony2的關係
- 19. 如何將其轉換爲Doctrine 2 QueryBuilder格式?
- 20. 被Doctrine QueryBuilder忽略的參數
- 21. 如何將其轉換爲Doctrine QueryBuilder?
- 22. 使用對象方法的Doctrine querybuilder
- 23. Doctrine 2 DBAL Querybuilder和獲取結果
- 24. IN CASE THEN表達式中的結果表達式中的IN語句
- 25. Symfony2映射4表內聯接查詢到Doctrine QueryBuilder
- 26. DATE_SUB和INTERVAL in Doctrine
- 27. 「In」操作的表達式樹二進制表達式
- 28. mysql NOW()+ $ seconds php?
- 29. mysql where IN語句使用正則表達式?
- 30. Jpa QueryBuilder where子句中的多個表達式不起作用
文檔鏈接的報道,請更新。 – wesamly
這CURRENT_TIMESTAMP()的東西從來沒有爲我工作。你能提供一個如何使用它的例子嗎?我不想使用Web服務器的時間,而是使用數據庫。我總是最終編寫原始SQL(仍然綁定參數)並放棄查詢構建器。 – ficuscr
另請注意''now''是'DateTime'的默認參數,所以'new \ DateTime()'就足夠了。 –