我正在使用python 3.6.4和sqlite3 2.6.0在我的表中查询最接近的连续日期。
我尝试将实际的SQL字符串带有VSCODE调试器,并使用DB浏览器进行SQLITE测试。它正如我期望的。
这是代码:
sql = 'WITH
dates(cast_date) AS (
SELECT DISTINCT play_date
FROM TimeTable
),
groups AS (
SELECT
date(cast_date, '-'||(ROW_NUMBER() OVER (ORDER BY cast_date))||' days') AS grp,
cast_date
FROM dates
)
SELECT
MIN(cast_date) AS date_start,
MAX(cast_date) AS date_end
FROM groups GROUP BY grp ORDER BY 2 DESC LIMIT 1'
cursor = conn.cursor()
result = []
try:
cursor.execute(sql)
result = cursor.fetchone()
except sqlite3.OperationalError:
FileLogger.exception('Exception at '+__file__+' '+__name__)
发生一个例外:
cursor.execute(sql)
sqlite3.OperationalError: near "OVER": syntax error
使用Python时,您正在使用Python SQLite3客户端库(与Python一起分发(,而不是System SQLite3安装。对于Python 2.7,该版本为 您可以尝试使用这些答案所建议的较新的sqlite3客户库库。3.25.0
(2018-09-15(添加到SQLite。3.11.0
,低于您所需的版本。