首页 > 解决方案 > 时间戳作为sql查询中的变量

问题描述

我想在 python 中使用时间戳值作为 MySQL 查询的变量。

tsmin = 1527573750;
tsmax = 1527574050;
command = "SELECT * FROM #CMD# WHERE data.#CMD#.TimesTamp BETWEEN 
          FROM_UNIXTIME(tsmin) AND FROM_UNIXTIME(tsmax)";

这给出了这个错误:_mysql_exceptions.OperationalError:(1054,“'where 子句'中的未知列'tsmin'”)

当我使用以下命令时,它工作正常。

command = "SELECT * FROM #CMD# WHERE data.#CMD#.TimesTamp BETWEEN 
          FROM_UNIXTIME(1527573750) AND FROM_UNIXTIME(1527574050)"

谁能帮助我?

标签: pythonmysql

解决方案


f 字符串(Python 3.6+)

tsmin = 1527573750;
tsmax = 1527574050;
command = f"SELECT * FROM #CMD# WHERE data.#CMD#.TimesTamp BETWEEN 
          FROM_UNIXTIME({tsmin}) AND FROM_UNIXTIME({tsmax})";

格式

tsmin = 1527573750;
tsmax = 1527574050;
command = "SELECT * FROM #CMD# WHERE data.#CMD#.TimesTamp BETWEEN 
          FROM_UNIXTIME({tsmin}) AND FROM_UNIXTIME({tsmax})".format(tsmin=tsmin, tsmax=tsmax);

推荐阅读