如何在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. MySQL NOW()在Doctrine DBAL插入?
- 4. Symfony3 Doctrine querybuilder
- 5. 在Doctrine QueryBuilder中的MySQL DATETIME的Retreive date
- 6. doctrine dbal querybuilder as prepared statement
- 7. Doctrine QueryBuilder和concat問題
- 8. Symfony2 doctrine mysql IN查詢
- 9. SQL到Doctrine的QueryBuilder轉換
- 10. 在Doctrine Querybuilder中使用`DATE()`
- 11. MySQL和Doctrine QueryBuilder從三個表中多個LEFT和INNER JOIN
- 12. Doctrine querybuilder複雜規則
- 13. Symfony3 Doctrine queryBuilder for pagerfanta ManyToMany realationship
- 14. Symfony2 Doctrine Querybuilder全部選中
- 15. FindOption vs QueryBuilder in typeorm
- 16. Where In Not - doctrine
- 17. 如何在Doctrine 2 DQL中使用now()?
- 18. groupBy在Doctrine QueryBuilder中使用別名
- 19. 多個表達式與IN
- 20. Doctrine 2.0 in production
- 21. Symfony2 Doctrine QueryBuilder不尊重參數
- 22. ManyToMany與Doctrine的QueryBuilder和Symfony2的關係
- 23. 如何將其轉換爲Doctrine 2 QueryBuilder格式?
- 24. 被Doctrine QueryBuilder忽略的參數
- 25. Doctrine 2 DBAL Querybuilder和獲取結果
- 26. 如何將其轉換爲Doctrine QueryBuilder?
- 27. Symfony Doctrine if語句在querybuilder中
- 28. Symfony - Doctrine QueryBuilder生成錯誤的sql
- 29. 使用對象方法的Doctrine querybuilder
- 30. PHPStorm,自動完成在querybuilder(Doctrine/Symfony2)
文檔鏈接的報道,請更新。 – wesamly
這CURRENT_TIMESTAMP()的東西從來沒有爲我工作。你能提供一個如何使用它的例子嗎?我不想使用Web服務器的時間,而是使用數據庫。我總是最終編寫原始SQL(仍然綁定參數)並放棄查詢構建器。 – ficuscr
另請注意''now''是'DateTime'的默認參數,所以'new \ DateTime()'就足夠了。 –