我是新来的sql服务器。有没有一种方法可以比较前两行的时间?我的身份证是独一无二的,所以如果我再添加一次我想要改变我的查询的价值。如果我的问题不清楚,我想知道最后2行btw的时差。SQL SERVER时间和行比较
回答
你也许可以想出下面的解决方案的36种。如果你能理解它们,你将在这个过程中学到很多SQL。
-- scalar subqueries
select datediff(second, max("time"), (select max("time") from T)) as difference
from T
where "time" < (select max("time") from T)
-- correlated subquery
select datediff(
second,
(select t2."time" from T as t2 where t2."time" < t."time"),
t."time") as difference
from T as t
where t.id = (select max(id) from T)
-- self outer joins
select datediff(second, max(t2."time"), max(t."time")) as difference
from T as t left outer join T as t2 on t2."time" < t."time" -- by time
select datediff(second, max(t2."time"), max(t."time")) as difference
from T as t left outer join T as t2 on t2.id = t.id - 1 -- by id
-- cross apply
select datediff(second, max(prev."time"), max(t."time")) as difference
from T as t cross apply
(select max("time") from T as t2 where t2."time" < t."time") as prev("time")
-- cte with case expression
with max_time("time") as (select max("time") from T)
select min(case when t."time" <> max_time."time"
then datediff(second, t."time", max_time."time") end) as difference
from T as t cross apply max_time
-- derived table and analytic functions
select difference
from (
select
row_number() over (order by "time" desc) as rn,
datediff(second, lag("time") over (order by "time"), "time") as difference
from T
) T2
where rn = 1
,如果他们的数字可以直接比较日期。
SELECT id FROM table WHERE time >= '2016-07-15'
为了得到区别两个时间之间,使用DATEDIFF
http://www.techonthenet.com/sql_server/functions/datediff.php
您需要将日期文字用单引号括起来。最好使用符合ANSI的yyyy-mm-dd。在这种情况下,它将是'2016-07-05'。 –
现在你修复了语法,我没有看到这是如何回答这个问题的。当然,我们也不知道问题是什么。 ;) –
我在想,他的问题实际上只是“我不知道如何比较日期”,所以我只是想指出他的方向是正确的。猜猜我可能已经等待澄清,但:p – Caius
- 1. SQL Server:比较行之间的日期
- 2. 在SQL Server 2008中比较时间
- 3. SQL Server比较日期时间字段
- 4. SQL时间比较
- 5. Sql Server比较行为
- 6. 在sql server中比较多行和列
- 7. SQL Server和MongoDB比较?
- 8. 比较SHA2_512 C#和SQL Server
- 9. 比较和对比Sybase和SQL Server
- 10. SQL Server从日期提取时间并进行比较
- 11. SQL Server 2008中 - 时间列比较当前日期时间
- 12. SQL Server中的日期和时间比较
- 13. T-SQL中的行内时间比较
- 14. 比较SQL时间戳
- 15. 在SQL中比较时间
- 16. 在SQL Server T-SQL中比较日期/时间
- 17. 如何在SQL Server中比较24小时格式的时间
- 18. Sql Server - 仅比较24小时格式的时间?
- 19. SQL查询比时间戳比较慢
- 20. 比较时间和相应的行动
- 21. 如何比较SQL Server中的两行
- 22. 比较SQL Server表中的同一行
- 23. SQL Server比较后续行重复
- 24. VBScript和SQL Server - 比较两个日期时间大致使用SQL
- 25. SQL Server 2008中的时序比较
- 26. SQL比较和选择行
- 27. SQL Server比较字符和更新列
- 28. SQL Server和Oracle中的比较表
- 29. SQL Server 2008和Unicode字符比较
- 30. Oracle和SQL Server数据集比较
请添加预期的结果以及一些样本数据 – TheGameiswar
你想要最后两行的时间差吗? –
是的,先生对不起,如果我的问题不清楚。 – newbiesqlserver