我试图从特定日期开始过去24小时。在我的表中,我有很多数据点,但我只想提前24小时从所选ID中提取。这是示例
select ID, Name, FullDatetime from myTable where ID = 53
此查询的结果如下所示:
ID Name FullDateime
53 John 2015-03-11 02:00:00.000
所以我想在此日期之前过去24小时。请帮忙。感谢
答案 0 :(得分:1)
如果我正确理解您的问题,要获取FullDateTime
FullDateTimeValue
的最后24小时内ID
值 select mt1.ID, mt1.Name, mt1.FullDateTime
from myTable mt1
inner join myTable mt2
on mt1.FullDateTime between DATEADD(hour, -24, mt2.FullDateTime) and mt2.FullDateTime
and mt2.ID = 53
的记录,您可以使用自我加入:
FullDateTime
既然你提到你有很多数据点,性能可能是一个问题。如果我们知道你在表上有什么索引,也许可以编写查询以更好地使用它们。如果您在mt1
上有索引,则上述查询将使用该索引(在{{1}}上)。
答案 1 :(得分:-1)
我不清楚你想要什么,你想要24小时或更小或更老的记录吗?
旧版:
select ID, Name, FullDatetime from myTable
where ID = 53
and dateadd(day, 1, FullDatetime) < @myDate
年轻
select ID, Name, FullDatetime from myTable
where ID = 53
and dateadd(day, 1, FullDatetime) > @myDate