SQLite BETWEEN 日期错误

Posted

技术标签:

【中文标题】SQLite BETWEEN 日期错误【英文标题】:SQLite BETWEEN dates error 【发布时间】:2018-07-21 08:38:24 【问题描述】:

我有以下代码:

import sqlite3
conn = sqlite3.connect('wereldzaak.sqlite')
curs = conn.cursor()
x = curs.execute('''SELECT SUM(price)
                    FROM purchase, product
                    WHERE dt_iso BETWEEN ‘2015-01-01' AND ‘2015-12-31’ ''')

但是当我运行它时,我得到以下错误:

WHERE dt_iso BETWEEN ‘2015-01-01' AND ‘2015-12-31’ ''')
sqlite3.OperationalError: unrecognized token: "' AND ‘2015-12-31’ "

我在网上查了一下,还是不知道我的代码有什么问题

【问题讨论】:

这些不是您在日期字符串周围放置的有效撇号。 SQLite 中的日期文字不带反引号,它们带单引号。所以使用BETWEEN '2015-01-01' AND '2015-12-31' @TimBiegeleisen 这个角色实际上是一个反引号(或称为反引号)吗?在我的编辑器中,反引号看起来非常不同 两个表也需要使用JOIN来连接 @roganjosh 好吧,它不是单引号或双引号,所以我认为它不会起作用。 【参考方案1】:

你有两个问题

您使用了三重单引号而不是三重双引号(将 ''' 替换为 """)。python 不支持三重单引号 单引号不是普通的单引号(使用')。您应该将您的编辑器修复为 Python 兼容模式。

【讨论】:

以上是关于SQLite BETWEEN 日期错误的主要内容,如果未能解决你的问题,请参考以下文章

Sqlite,使用分组?对于具有日期范围的子查询

使用 Sqlite flutter BETWEEN 查询返回最近 2 天的记录

Oracle 日期的“BETWEEN”SQL 关键字——在 Oracle 中出现错误

BETWEEN 两个日期与函数 SQL

在 SQLite 中使用 Between 不返回每周数据

目标 C,SQLite SELECT BETWEEN 问题