sql - SQL 查询不返回正确的结果
问题描述
我正在尝试从 PHP 进程中过滤 SQL 服务器上的两个日期。
这是查询:
select *
from webStocks
where FECHAMODIFICADO between '2020-06-03 17:16:02' and '2020-06-04 17:16:03'
ORDER BY webStocks.FECHAMODIFICADO DESC
这是结果:
结果不是我想要的。在表中,我有以下信息,它应该是结果。
我在查询中做错了什么?:(
解决方案
SQL 表表示无序集。这意味着,当您运行不带 no 的查询时ORDER BY
,结果可以按任何顺序排列——甚至在不同运行时按不同顺序排列。
在这种情况下,您有一个ORDER BY
. 但是该列有重复项。同样的原则也适用:具有相同键值的行可以按任何顺序排列——甚至在不同的运行中可以按不同的顺序排列。
因此,您需要添加一个新密钥来捕获您想要的订单。从您的数据中看不出来。但是如果你使用,结果至少会是稳定的:
ORDER BY webStocks.FECHAMODIFICADO DESC, CodeArticulo
您的WHERE
条款包含非常具体的时间也很奇怪。但是这些行中的数据都是在午夜发生的。如果时间戳代表人类行为,通常午夜不是这样一个活跃的时间。
推荐阅读
- rest - 使用 cURL 的 HTTP GET 给出 SSL 错误
- oracle - 将 Oracle DB 添加到 ODBC 连接时出错
- powershell - 如何在 Powershell 中注册事件以使其保持永久状态?
- openmp - 并行使用 Eigen LeastSquaresConjugateGradient
- c# - 动态加载所有应用程序程序集 -asp net core
- java - 使用 java 使用 iText 删除添加到单个 pdf 文件中的图像之间的空间。
- tomcat - tomcat 常量池大小
- html - 如果底部低于视口,CSS将元素垂直拉伸到底部
- angular - Angular 5&6 测试错误:无法加载指令 AppComponent 的摘要
- php - 在 MacOS High Sierra 版本 10.13.4 更新后本地运行 MySQL