• 在创建引擎时,将echo参数配置成True,会输出sql执行语句记录。默认False

    create_engine(statsticConf.sqlalchemy_mysql,connect_args={"charset": "utf8mb4"},echo = True)
    #输出如下:

    2018-12-11 15:34:31,814 INFO sqlalchemy.engine.base.Engine SELECT count(`MT4_TRADES`.`TICKET`) AS deal_close
    FROM `MT4_TRADES`
    WHERE `MT4_TRADES`.`LOGIN` = %(LOGIN_1)s AND `MT4_TRADES`.`CMD` IN (%(CMD_1)s, %(CMD_2)s) AND `MT4_TRADES`.`CLOSE_TIME` >= %(CLOSE_TIME_1)s AND `MT4_TRADES`.`CLOSE_TIME` < %(CLOSE_TIME_2)s
    2018-12-11 15:34:31,814 INFO sqlalchemy.engine.base.Engine {'LOGIN_1': 2021400, 'CMD_1': 0, 'CMD_2': 1, 'CLOSE_TIME_1': '1970-01-01 00:00:00.1', 'CLOSE_TIME_2': '2018-10-26 09:47:00.0'}

    我们需要复制sql到数据库验证有效性。从结果来看,并不能直接复制到数据库执行,变量值需要手动修改代入。

  • 改进。官方有提供compile方法。 https://docs.sqlalchemy.org/en/latest/core/internals.html?highlight=statement%20compile#sqlalchemy.engine.interfaces.Compiled
  • t_tradesTable = session.query(sqlQuery.label(quotaValue)).filter( sqlFilter )
    
    print(t_tradesTable.statement.compile(compile_kwargs={'literal_binds': True}))
    

    SELECT count(`MT4_TRADES`.`TICKET`) AS deal_close
    FROM `MT4_TRADES`
    WHERE `MT4_TRADES`.`LOGIN` = 2021400 AND `MT4_TRADES`.`CMD` IN (0, 1) AND `MT4_TRADES`.`CLOSE_TIME` >= '1970-01-01 00:00:00.1' AND `MT4_TRADES`.`CLOSE_TIME` < '2018-10-26 09:47:00.0'

      

sqlachemy 原生sql输出的更多相关文章

  1. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

  2. 08章 分组查询、子查询、原生SQL

    一.分组查询 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  3. jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具

    jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...

  4. 使用hibernate原生sql查询,结果集全为1的问题解决

    问题如下: String sqlTest ="select summary,summaryno from F_Summary"; List<Map<Object, Ob ...

  5. [转]ThinkPHP中如何使用原生SQL

    From : http://huangqiqing123.iteye.com/blog/1540323 TP的模型可以支持原生SQL操作,提供了query和execute两个方法,为什么原生SQL还要 ...

  6. Hibernate 函数 ,子查询 和原生SQL查询

    一. 函数 聚合函数:count(),avg(),sum(),min(),max() 例:(1)查询Dept表中的所有的记录条数. String hql=" select count(*) ...

  7. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  8. (25)ASP.NET Core EF查询(复杂查询运算符、原生SQL查询、异步查询)

    1.复杂查询运算符 在生产场景中,我们经常用到LINQ运算符进行查询获取数据,现在我们就来了解下生产场景经常出现几种复杂查询运算符. 1.1联接(INNER JOIN) 借助LINQ Join运算符, ...

  9. laravel的ORM转为原生sql

    注:mysql测试成功,mongoDB测试失败//将laravel的ORM转为原生sql $SubProfits为laravel的ORM对象 $SubProfits = model::where('i ...

随机推荐

  1. Spring注解@Value数值取值转换字符串失败

    配置文件(yml)中,配置项如下: cebconfig: INST_CODE: 08801001 SFT_NOTIFY_CEB_CHANNEL: 123456 期望INST_CODE: 0880100 ...

  2. java读取pfx或P12格式的个人交换库公私钥

    使用的是CFCA签发的用于银行间交换数据的证书,下载后直接添加到浏览器中 1.导出 从浏览器导出p12文件(包含私钥) 2.验证 两种方式: openssl 代码(请注意alias别名是如何获取的): ...

  3. checkboxlist 如何配置数据源?

    <f:CheckBoxList runat="server" ColumnNumber="4" ColumnVertical="true&quo ...

  4. =>符号的意义

    => 是 Oracle 中调用存储过程的时候, 指定参数名进行调用.一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用. 下面是具体的例子. 参数的默认值SQL> CREATE ...

  5. EAIntroView–高度可定制的iOS应用欢迎页通用解决方案

    简介 高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo. 项目主页: EAIntroView 最新示例: 点击下载 入门 安装 安装后,引入” EAIntroView.h”并设 ...

  6. django+xadmin在线教育平台(十四)

    7-1 django templates模板继承1 机构可以筛选类别 机构可以根据所在地区进行分类 右侧我要学习功能: form表单提交 右下:授课机构排名 页面头部与底部为全局头和全局底部. Dja ...

  7. C#基础-面向对象-继承

    继承 新建一个基类 对Person类3个字段进行重构->封装字段 效果如下: public string Name { get => name; set => name = valu ...

  8. 关于Pycharm基本操作笔记

    创建 project(工程,译音:破拽科特) 1.Create New project(创建一个新的工程,译音:科瑞特 纽 破摘科特) 2.pure python(纯派森,译音:皮忧儿 派森) 3.l ...

  9. css样式 body的font-size 为什么用625%

    浏览器的默认高度?一般为16px. 为什么用62.5%作为body的默认样式?16px62.5%=10px.* 那么为什么一般多是 16px  *625% = 100px; <响应式Web设计实 ...

  10. [BZOJ2120]数颜色(莫队算法)

    Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜 ...