pythonsql在其中使用日期

2024-06-28 14:52:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取本周(星期一到星期日)内的所有记录,然后我计划将它们重新插入数据库中,但课程日期增加了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)

Tags: 代码importtodaydatetimedate记录数组days
2条回答

SQLite(没有地方,不仅仅是Python)不支持日期。在

因此,您必须在查询时将日期转换为它可以理解的格式,但存储中的日期也是如此。有两种选择:

  • 从某个纪元开始的秒数,例如unix时间,可能是小数。在
  • 弦乐。在

为了比较字符串,日期必须以ISO8601格式存储(或至少按该顺序)。ISO8601时间戳有格式规范"%FT%T"(或者在不理解%F%T"%Y-%m-%dT%H:%M:%S"的系统上)。或者只是日期为"%F"/"%Y-%m-%d"。您可以使用不同的分隔符,但唯一能让您感到困惑的是。SQLite还有一些内置函数,可以处理ISO8601格式的日期。在

我相信您可以在某处定义转换,以便在绑定查询参数时自动使用它,但我不记得在哪里。保证手动工作。在

sqllite要求日期为YYYY:MM:DD格式。您可能应该将strftime与以下参数一起使用:

endweekd   = endweekd.strftime("%Y:%m:%d")
startweekd = startweekd.strftime("%Y:%m:%d")

相关问题 更多 >