按日期和时间排序不起作用SQLITE3和Python

时间:2019-04-06 21:53:52

标签: python sqlite

这是我创建表格的方式:

c.execute(f"""CREATE TABLE IF NOT EXISTS 'news_list' (
                  stuff text,
                  more_stuff text,
                  date_posted date,
                  UNIQUE(href)
                  )""")

然后我在另一个函数中创建了这样的日期,并将其存储在DB中:

date_posted = f'{year}-{month}-{day}'

看起来像这样的'2018-04-12'

因为它不是生成的,而是从抓取的列表中提取的。因此它基本上是python中的字符串。

然后我在另一个函数中使用它来订购它:

c.execute("""SELECT *
             FROM news_list
             ORDER BY date(date_posted) DESC""")

它绝对不执行任何操作。当我刷新数据库时,表保持不变,并且也不会出现任何错误。我在做什么错了?

同时间。

1 个答案:

答案 0 :(得分:1)

数据库不会更改存储的数据顺序,因为这会使维护数据库结构效率低下。当从表中插入,更新或删除数据时,数据库引擎将根据需要移动数据以保持效率。

相反,对SELECT查询产生的数据进行排序。您需要为每个查询指定顺序,在此顺序对应用程序很重要。

在任何给定的SELECT中使用的顺序不会影响其他查询的顺序或存储的行顺序。