检查以下场景。有一个包含两列的表 - 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/