我正在尝试获取本周(星期一到星期日)内的所有记录,然后我计划将它们重新插入数据库中,但课程日期增加了7。但是我得到了以下错误:
sqlite3.OperationalError: near ">=": syntax error
我可能错了,但我认为这是由于python存储日期的方式,如果不是这样,我总是可以将表中的所有记录放入数组中,并用python过滤该数组。sql的代码在下面:
^{pr2}$我剩下的代码只是计算那个星期的开始和结束日期。在
import datetime
from datetime import date, timedelta
import sqlite3
tdate = datetime.datetime.today()
tday = datetime.datetime.today().weekday()
tdadd = 7 - (tday+1)
endweekd = date.today() + timedelta(days=tdadd)
startweekd = endweekd - timedelta(days=7)
endweekd = endweekd.strftime("%d/%m/%y")
startweekd = startweekd.strftime("%d/%m/%y")
print(startweekd)
print(endweekd)
SQLite(没有地方,不仅仅是Python)不支持日期。在
因此,您必须在查询时将日期转换为它可以理解的格式,但存储中的日期也是如此。有两种选择:
为了比较字符串,日期必须以ISO8601格式存储(或至少按该顺序)。ISO8601时间戳有格式规范
"%FT%T"
(或者在不理解%F
或%T
"%Y-%m-%dT%H:%M:%S"
的系统上)。或者只是日期为"%F"
/"%Y-%m-%d"
。您可以使用不同的分隔符,但唯一能让您感到困惑的是。SQLite还有一些内置函数,可以处理ISO8601格式的日期。在我相信您可以在某处定义转换,以便在绑定查询参数时自动使用它,但我不记得在哪里。保证手动工作。在
sqllite
要求日期为YYYY:MM:DD
格式。您可能应该将strftime
与以下参数一起使用:相关问题 更多 >
编程相关推荐