python sql订单日期不起作用

python sql订单日期不起作用,sql,python-3.x,sqlite,sql-order-by,Sql,Python 3.x,Sqlite,Sql Order By,我遇到了另一个可能是自己造成的问题。 Python3.6和sqlite 我在创建数据库、添加表和信息等方面已经足够了。我的问题是,我读的信息不是顺序的。但我希望它在数据库中进行排序,这样更容易处理。下面是我的代码,它应该按照名为datum的时间戳对表条目进行排序。如果我在ubuntu上的sqliteman中运行相同的查询,它就会工作,并按照我的要求对行进行重新排序。但是,如果我在python中尝试它,它会不起作用吗 con = lite.connect(db_name) with con:

我遇到了另一个可能是自己造成的问题。 Python3.6和sqlite 我在创建数据库、添加表和信息等方面已经足够了。我的问题是,我读的信息不是顺序的。但我希望它在数据库中进行排序,这样更容易处理。下面是我的代码,它应该按照名为datum的时间戳对表条目进行排序。如果我在ubuntu上的sqliteman中运行相同的查询,它就会工作,并按照我的要求对行进行重新排序。但是,如果我在python中尝试它,它会不起作用吗

con = lite.connect(db_name)

with con:
    try:
        cur = con.cursor()

        strExec = "SELECT * FROM " + db_table_name + " ORDER BY datum ASC"
        cur.execute(strExec)
        con.commit()
    except Error as e:
        print(e)
cur.close()
con.close()
以下是该表中的基准条目。这里有数百个条目,但我只展示了其中的几个

2017-12-23T00:00:00
2017-12-25T00:00:00
2017-12-24T00:00:00
2017-12-21T00:00:00
2017-12-24T00:00:00
2017-12-26T00:00:00
2017-12-12T00:00:00
你知道我错过了什么吗? 谢谢

正如下面回答的,数据在db表中的顺序是完全不相关的。当只处理数据时,需要对数据进行排序,并按需要的顺序排列。因此,下面的代码片段是将数据转换为所需顺序的一个示例

db_result = cur.fetchall() 
for row in db_result:
    print(row)

SQL表是无序的


如果要按特定顺序从表中检索行,则必须在检索行的每个查询中添加order BY子句。

能否详细说明它不起作用的含义?查看代码,我没有看到任何试图读取查询结果的内容,因此代码示例似乎不完整。根据我对python中DB2.0API的回忆,您需要:cur.executequery;cur.fetchall。[更好的方法是迭代游标中的行]您是否认为执行该查询会自动重新排序数据库表本身?您希望cur.execute后跟con.commit能完成什么?只有在修改数据库时,提交才有效,而SELECT不会修改任何内容。当你看你正在使用的代码时,你的问题真的没有写出来的那么有意义。SELECT检索数据,您必须读取它返回的行。这就是我的问题所在。我试了一个fetachall并把它们打印在屏幕上。一切都井然有序,所以我想我必须写回它们,因为查询只会对它们进行排序,并将它们按顺序推送到我面前显示。这是有道理的。那么如何将它们写回数据库?创建新表,删除旧表,然后将新表重命名为旧表名?还是有更简单的方法?请解释!没有必要尝试以某种顺序将它们写回。这就是我最初所做的,我只是不知道数据库表中的顺序是不相关的,我需要在从数据库获取数据时对结果进行排序。请看我上面更正的问题
db_result = cur.fetchall() 
for row in db_result:
    print(row)