SQLite 使用变量创建 table 名称

SQLite creating table name using a variable

我想知道是否可以使用 python 中的 datetime 模块来创建 day-specific tables 以便 table 的名称是日期本身。

date_object = datetime.date.today()
sqlite_create_transfer_table = '''CREATE TABLE IF NOT EXISTS date_object (
                                sender TEXT NOT NULL,
                                recipient TEXT NOT NULL,
                                ID text NOT NULL,
                                Size NOT NULL,
                                Colour NOT NULL,
                                Quantity INTEGER NOT NULL);'''

然而,这只是使 table 标题为 'date_object' 而不是使用变量。任何帮助将不胜感激,谢谢! <3

您需要像这样连接查询:

sqlite_create_transfer_table = '''CREATE TABLE IF NOT EXISTS '+date_object+' (
                            sender TEXT NOT NULL,
                            recipient TEXT NOT NULL,
                            ID text NOT NULL,
                            Size NOT NULL,
                            Colour NOT NULL,
                            Quantity INTEGER NOT NULL);'''

datetime.date.today() 将 return 一个 datetime.date 对象,您必须将其转换为字符串,但即便如此,像 2022-03-05 这样的字符串也不是 SQLite 的有效名称。
您必须将其括在方括号或反引号或双引号之间。

试试这个:

date_object = datetime.date.today()
sqlite_create_transfer_table = f"""CREATE TABLE IF NOT EXISTS [%s](
                                sender TEXT NOT NULL,
                                recipient TEXT NOT NULL,
                                ID text NOT NULL,
                                Size NOT NULL,
                                Colour NOT NULL,
                                Quantity INTEGER NOT NULL);""" % date_object