简体   繁体   English

Python3 SQLite查询

[英]Python3 SQLite query

I am having an issue with a Python3 sqlite query. 我在使用Python3 sqlite查询时遇到问题。

This is the following query I ran from the sqlite3 interpreter, it works perfectly: 这是我从sqlite3解释器运行的以下查询,它运行良好:

  SELECT {some_columns} FROM {tableA} WHERE bus='ABCD' AND 
    datetime(date_column||" "||time_column) >= datetime('2019-03-19 05:30:00') 
    INTERSECT
  SELECT {some_columns} FROM {tableA} WHERE bus='ABCD' AND
    datetime(date_column||" "||time_column) <= datetime('2019-03-19 05:30:00', '+135 minutes');

However when I run the same query in Python as below, it always returns None 但是,当我在Python中如下运行相同的查询时,它总是返回None

cur.execute('''SELECT colA FROM tableA WHERE bus='ABCD' AND
    datetime(date_column||" "||time_column) >= dateteime(?) 
    INTERSECT
    SELECT colA FROM tableA WHERE bus='ABCD' AND
    datetime(date_column||" "||time_column) <= dateteime(?)''', (
bus,
dt.strftime('%Y-%m-%d %H:%M:%S'),
"'%s', '+%s minutes'" % (lookup_time.strftime("%Y-%m-%d %H:%M:%S"),
                                                              duration)

)).fetchall()

Any sort of help or ideas would be appreciated. 任何帮助或想法,将不胜感激。 The 'bus' and date/time columns have been properly defined in the SQlite tables. SQlite表中已正确定义了“公共汽车”和日期/时间列。

SOLVED IT! 解决了!

I used the datetime module instead. 我改用datetime模块。 My final python code was: 我最后的python代码是:

lookup_end_time = lookup_time + datetime.timedelta(minutes=135)

...code trimmed here... ...代码在这里修剪...

cur.execute('''SELECT colA FROM tableA WHERE bus='ABCD' AND
    datetime(date_column||" "||time_column) >= dateteime(?) 
    INTERSECT
    SELECT colA FROM tableA WHERE bus='ABCD' AND
    datetime(date_column||" "||time_column) <= dateteime(?)''', (
bus,
dt.strftime('%Y-%m-%d %H:%M:%S'),
lookup_end_time

)).fetchall()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM