我试图从一个SQLite数据库中提取一个行列表,这些行位于一周中的某一天和某一天的某个小时。 当我打开sqlite浏览器并键入SQL时:
SELECT * FROM points
WHERE strftime('%H', checkintime) == '12'
AND strftime('%w', checkintime) == '1'
它起作用了,我收到了我应该接收的所有行。 但是,当我尝试在python中执行此操作时:
^{pr2}$当时间是12,天是1时,返回的结果为零。
更奇怪的是,当我将execute
语句更改为使用硬编码值时,它可以工作。在
我尝试将我的vars类型转换为string和int,但还是不行。:(
有什么建议吗?在
时间和日期值必须是字符串。另外,我想知道您的“%”是否需要转义(带%%)——有可能在pysqlite中,
?
占位符被转换成%-样式的占位符,然后您的%H和%w被误解了。下面的方法行吗?在如何处理execute调用之外的字符串格式?例如
这应该避免execute语句无法完成的字符串映射。在
祝你好运!在
我认为您必须将数字参数转换为字符串,否则它们不会像您在sqlite中的语句中那样被引用。变量替换为?不引用数字。在
实际上是在比较字符串,因此必须将参数转换为字符串。在
相关问题 更多 >
编程相关推荐