如何在Doctrine2中使用SQL的YEAR(),MONTH()和DAY()?

戈特利布·诺施纳贝尔

我想执行一个在本机SQL中看起来像这样的查询:

SELECT
    AVG(t.column) AS average_value
FROM
    table t
WHERE
    YEAR(t.timestamp) = 2013 AND
    MONTH(t.timestamp) = 09 AND
    DAY(t.timestamp) = 16 AND
    t.somethingelse LIKE 'somethingelse'
GROUP BY
    t.somethingelse;

如果我想像这样在Doctrine的查询生成器中实现此目的:

$qb = $this->getDoctrine()->createQueryBuilder();
$qb->select('e.column AS average_value')
   ->from('MyBundle:MyEntity', 'e')
   ->where('YEAR(e.timestamp) = 2013')
   ->andWhere('MONTH(e.timestamp) = 09')
   ->andWhere('DAY(e.timestamp) = 16')
   ->andWhere('u.somethingelse LIKE somethingelse')
   ->groupBy('somethingelse');

我收到错误异常

[语法错误]第0行,第63行:错误:预期的已知功能,获取了'YEAR'

如何使用Doctrines查询构建器实施查询?

笔记:

  • 我知道Doctrine的Native SQL我已经尝试过了,但是这导致了我的生产数据库表和开发数据库表使用不同名称的问题。我想与数据库无关,所以这是没有选择的。
  • 尽管我想使用不可知论的数据库:仅供参考,但我正在使用MySQL。
  • 有一种方法可以扩展“教义”以“学习” YEAR()etc.语句,例如此处所示但是我正在寻找一种避免包含第三方插件的方法。
alex88

您可以添加Doctrine扩展名,以便在Symfony上通过添加以下配置来使用MySqlYEARMONTH语句:

doctrine:
    orm:
        dql:
            string_functions:
                MONTH: DoctrineExtensions\Query\Mysql\Month
                YEAR: DoctrineExtensions\Query\Mysql\Year

现在,您可以在DQL或querybuilder中使用MONTH和YEAR语句。

注意:该扩展支持MySQL,Oracle,PostgreSQL和SQLite。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Doctrine2中使用SQL的YEAR(),MONTH()和DAY()?

来自分类Dev

如何在Doctrine2中选择YEAR()MONTH()DAY()

来自分类Dev

How can I use SQL's YEAR(), MONTH() and DAY() in Doctrine2?

来自分类Dev

Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

来自分类Dev

zf2 doctrine2如何在实体列中使用tinyint数据类型

来自分类Dev

如何在doctrine2 queryBuilder中实现ON(... OR ...)mysql查询

来自分类Dev

定义和使用Symfony2和Doctrine2中的ENUM类型的正确方法

来自分类Dev

使用ZF2和Doctrine2将SQL Server表转换为MySQL

来自分类Dev

如何在Symfony2 Doctrine2中将varchar设置为int类型?

来自分类Dev

如何在Doctrine2中没有@Column注释的实体的属性中搜索?

来自分类Dev

如何在Doctrine2中的联接表中添加其他列?

来自分类Dev

如何在Doctrine2中的PrePersist LifecycleCallback上访问旧值

来自分类Dev

如何在ORM Doctrine2中手动设置/保留主键

来自分类Dev

如何在Doctrine2中查询WHERE ='来自相关实体的值'

来自分类Dev

如何在doctrine2中创建数据库(独立)

来自分类Dev

如何使用symfony3,doctrine2和stofDoctrineExtensionsBundle获取Gedmo Tree元素的路径

来自分类Dev

Doctrine2 DQL如何模拟Oracle LIMIT和OFFSET?

来自分类Dev

使用Doctrine2和Postgresql的简单DQL请求

来自分类Dev

在Doctrine2中的间隔

来自分类Dev

我如何在Doctrine 2 ODM中使用mongoDB在zf2中保存数据?

来自分类Dev

如何使用doctrine2中的日期字段类型规定年份范围

来自分类Dev

doctrine-extensions可上载,如何在Zend Framework 2中使用?

来自分类Dev

如何使用Doctrine2对相关的表记录进行计数

来自分类Dev

如何在Doctrine 2 DQL中使用DATE()?

来自分类Dev

尝试使用Symfony2和Doctrine2执行INSERT时出现“ 1064您的SQL错误”

来自分类Dev

有没有办法在doctrine2中使用mysql二进制运算符?

来自分类Dev

如何在Symfony 2.4中使用Doctrine Entity Listener?

来自分类Dev

如何在Symfony 2.4中使用Doctrine Entity Listener?

来自分类Dev

如何在Angular 2中使用canReuse和routerOnReuse

Related 相关文章

  1. 1

    如何在Doctrine2中使用SQL的YEAR(),MONTH()和DAY()?

  2. 2

    如何在Doctrine2中选择YEAR()MONTH()DAY()

  3. 3

    How can I use SQL's YEAR(), MONTH() and DAY() in Doctrine2?

  4. 4

    Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

  5. 5

    zf2 doctrine2如何在实体列中使用tinyint数据类型

  6. 6

    如何在doctrine2 queryBuilder中实现ON(... OR ...)mysql查询

  7. 7

    定义和使用Symfony2和Doctrine2中的ENUM类型的正确方法

  8. 8

    使用ZF2和Doctrine2将SQL Server表转换为MySQL

  9. 9

    如何在Symfony2 Doctrine2中将varchar设置为int类型?

  10. 10

    如何在Doctrine2中没有@Column注释的实体的属性中搜索?

  11. 11

    如何在Doctrine2中的联接表中添加其他列?

  12. 12

    如何在Doctrine2中的PrePersist LifecycleCallback上访问旧值

  13. 13

    如何在ORM Doctrine2中手动设置/保留主键

  14. 14

    如何在Doctrine2中查询WHERE ='来自相关实体的值'

  15. 15

    如何在doctrine2中创建数据库(独立)

  16. 16

    如何使用symfony3,doctrine2和stofDoctrineExtensionsBundle获取Gedmo Tree元素的路径

  17. 17

    Doctrine2 DQL如何模拟Oracle LIMIT和OFFSET?

  18. 18

    使用Doctrine2和Postgresql的简单DQL请求

  19. 19

    在Doctrine2中的间隔

  20. 20

    我如何在Doctrine 2 ODM中使用mongoDB在zf2中保存数据?

  21. 21

    如何使用doctrine2中的日期字段类型规定年份范围

  22. 22

    doctrine-extensions可上载,如何在Zend Framework 2中使用?

  23. 23

    如何使用Doctrine2对相关的表记录进行计数

  24. 24

    如何在Doctrine 2 DQL中使用DATE()?

  25. 25

    尝试使用Symfony2和Doctrine2执行INSERT时出现“ 1064您的SQL错误”

  26. 26

    有没有办法在doctrine2中使用mysql二进制运算符?

  27. 27

    如何在Symfony 2.4中使用Doctrine Entity Listener?

  28. 28

    如何在Symfony 2.4中使用Doctrine Entity Listener?

  29. 29

    如何在Angular 2中使用canReuse和routerOnReuse

热门标签

归档