sql - 当比较值由两个单独的字段组合时,是否可以使用单个 SQL 获取表中的最小(最大)行?

标签 sql mysql sql-server

检查以下场景。有一个包含两列的表 - DateWithoutMilliseconds 和 Milliseconds。这两列一起定义了精确的时间戳(以毫秒为单位)。

是否可以编写一条 SQL 语句(不使用存储过程)来获取具有毫秒精度的最小时间戳的行?实际上,仅仅时间戳就足够了,但它必须以毫秒为单位,因为几行可能具有相同的 DateWithoutMilliseconds 值,但毫秒不同。

现在,我完成了将总毫秒数存储在数据库中而不是前面提到的两列中的想法。但是,我必须确保我没有遗漏任何内容,并且是否有一个 SQL 允许有两列并且仍然能够获取确切的最小值 - 我想知道它。

提前非常感谢所有好心人。

编辑

我们同时使用 SqlServer 和 MySql。

最佳答案

对于不同的数据库,它看起来可能会有所不同,但在 SQL Server 中,您应该能够执行如下操作:

SELECT TOP 1 
    Field1, Field2, 
    dateadd(ms, MillisecondsField, DateWithoutMillisecondsField) TimeStamp
FROM Table
ORDER BY TimeStamp DESC

关于sql - 当比较值由两个单独的字段组合时,是否可以使用单个 SQL 获取表中的最小(最大)行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664823/

相关文章:

java - JDBC - PostgreSQL - 批量插入+唯一索引

sql - 可变日期格式查询

sql - 查找/创建一系列跟踪记录的正确结束日期

mysql - Ruby on Rails SQL 查询返回#<ActiveRecord::Relation:

mysql - 指定的 key 太长;最大 key 长度为 1000 字节

mysql - 无法在 MySQL 触发器中声明变量

Java存储过程: java. lang.NoSuchMethodError

mysql - 获取 mysql 复杂查询的帮助

python - pyodbc 和 sql server,将 datetime.date 应用于 DATE 列

sql - CROSS APPLY vs OUTER APPLY速度差