PHP sqlite sql问题

PHP sqlite sql问题,php,sql,sqlite,Php,Sql,Sqlite,我有一个数据库,其中包含一个使用文本的日期/时间字段。它被键入为日期/时间。在DB浏览器中查看时,它看起来像“2020-01-21 19-33-22Z”。我想按DESC日期/时间顺序对表格进行排序。使用DB Browser,我可以执行如下SQL语句: QSODATE DECS从日志顺序中选择* 该语句在DB浏览器中有效,但在我的PHP7.3.6环境中无效。当我运行PHP程序时,我没有得到任何错误,我得到了一个到表的连接,我可以从表中提取数据,但是顺序不正确。订单看起来像未调用订单的原始表 编辑日

我有一个数据库,其中包含一个使用文本的日期/时间字段。它被键入为
日期/时间
。在DB浏览器中查看时,它看起来像“
2020-01-21 19-33-22Z
”。我想按
DESC
日期/时间顺序对表格进行排序。使用DB Browser,我可以执行如下SQL语句:

QSODATE DECS从日志顺序中选择*

该语句在DB浏览器中有效,但在我的PHP7.3.6环境中无效。当我运行PHP程序时,我没有得到任何错误,我得到了一个到表的连接,我可以从表中提取数据,但是顺序不正确。订单看起来像未调用订单的原始表

编辑日期:2020年1月2日 从数据库浏览器: 结果:在2480ms内返回7251行 第1行: 按qsodate DESC从日志顺序选择*

这将导致该部分顶部行不正确: 202001221192000960 xx3xxx 40米FT8 2020-01-21 22:35:00Z

整个记录将是毫无意义的,但是这个片段包含我试图设置顺序的日期和时间。现在我看到了,当我键入第一个示例时,我在“DESC”中交换了两个字母。对不起

但是,应该位于顶部的日期/时间是:2020-01-31 18:26:00Z

示例中的日期/时间是未排序的日期/时间

PHP代码行是:


$result=$connection->query(“按qsodate DESC从日志顺序中选择*)

如果您可以将QSODE转换为a(即“2020-01-21 19:33:22Z”),那么您可以将其转换为unixepoch并按时间顺序排序

SELECT * FROM LOG ORDER by strftime('%s',qsodate) DESC
供参考

select strftime('%s',"2020-01-21 19:33:22Z") 'unixepoch'

Unixepoch
----------
1579635202

问题中的sqlite代码段出现语法错误,不会在DB Browser或php中运行。请务必查看1)在php中实际执行的查询以及2)返回的显示错误顺序示例的一些数据。您可以编辑此问题以提供更多信息。您是对的。这是从DB浏览器中剪切并粘贴的内容:。此格式的数据将作为字符串排序。我是否理解正确:DB Browser返回的第一行在qsodate中有
2020-01-21 22:35:00Z
。但是您希望它返回qsodate=
2020-01-31 18:26:00Z作为第一行的行吗?我原本以为你是说DB Browser和php以不同的顺序返回行,现在我想你的意思是两者都以“错误”的顺序返回行?你能澄清一下吗?你确定
qsodate
是正确的列吗?是的,“qsodate”是正确的列。我是一名业余无线电操作员,这些数据包含在我用来跟踪联系人的应用程序中。sqlite数据文件是数据文件的直接无转换副本。DB Browser告诉我列是DATETIME,表中有两种数据类型。此外,数据库中嵌入的一个索引包括“qsodate”。是-在DB浏览器和我的PHP应用程序中,顺序都是相同的。在管理数据库的应用程序(Log4OM)中,序列从2020-01-31日期开始。如果列以空白开始,则2020-01-31日期不会排序到顶部。这对眼睛来说可能很难发现,但对电脑来说就不容易了。预计所有行的qsodate长度为20。像
这样的sql是否通过长度从日志组中选择长度(qsodate)、计数(*)(qsodate)
确认这一点?