插入语句:
def PrincipalData():
conn=sqlite3.connect("Principal.db")
cur=conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS principal(id INTEGER PRIMARY KEY, CustomerID text, ServiceName text, ServicePrice text, Date text, Time text, ExtraProducts text, CustomerName text)")
conn.commit()
conn.close()
def addMainRec(CustomerID, ServiceName, ServicePrice, Date, Time, ExtraProducts, CustomerName ):
conn=sqlite3.connect("Principal.db")
cur=conn.cursor()
cur.execute("INSERT INTO Principal VALUES (NULL, ?,?,?,?,?,?,?)", (CustomerID, ServiceName, ServicePrice, Date, Time, ExtraProducts, CustomerName))
conn.commit()
conn.close()
我有一个sql查询:
cur.execute("SELECT * FROM principal ORDER BY Date DESC")
因此,我希望主体表中的所有记录都从最高日期到最低日期显示。这行代码就是这样做的,直到它莫名其妙地断了。这是我目前的记录列表:
|15/02/2022| |14:05| |645321| |Abby| |N/A| |Woman's Haircut| |£21|
|17/02/2022| |12:55| |655769| |Anita| |N/A| |Haircut & dye| |£50|
|18/03/2022| |12:25| |124218| |Chloe| |Hair oil| |Haircut| |£45|
|13/02/2022| |12:45| |655769| |Jill| |N/A| |Afro| |£25|
如有任何帮助,我们将不胜感激,谢谢。
这能做什么:
cur.execute("SELECT * FROM principal ORDER BY CAST("Date" AS DATE) DESC")
这是一种了解";日期";columns(用SQL关键字命名列是一件愚蠢的事情(实际上是一个日期或文本。
SQL是一种类型化语言,而不是像Excel那样的电子表格应用程序!
您的声明:
CREATE TABLE IF NOT EXISTS principal(id INTEGER PRIMARY KEY, CustomerID text, ServiceName text, ServicePrice text, Date text, Time text, ExtraProducts text, CustomerName text)
应写为:
CREATE TABLE IF NOT EXISTS principal(id INTEGER PRIMARY KEY, CustomerID text, ServiceName text, ServicePrice text, "Date" DATE, "Time" TIME, ExtraProducts text, CustomerName text)
为了使order BY SQL子句作为日期排序操作。
SQL是一种具有自动转换功能的强类型语言。。。