SQL语句如何查询某个时间节点的前后数据?

例如 8点40分前后的数据,如图:如何截取到这两条记录?
2024-10-30 23:23:33
推荐回答(3个)
回答1:

敲入:1234567select top 1* from tablewhere FinishTime>'2016-01-01 08:00:00.000'order by FinishTimeunion allselect top 1* from tablewhere FinishTime<'2016-01-01 08:00:00.000'order by FinishTime desc

  • 时间节点是一个很抽象和应用很广泛的概念,通俗的说就是某个大环境中的一个点或者一段,好比公交车线路中的一个站台。比如在工期计划,或者工作计划等里面体现较多。 以工期计划为例,时间节点可以代表工程的某个阶段或者某个里程碑的点,而此阶段或这个里程碑之前的工作需要在某个时间之前完成,这就是工程中经常提到的时间节点。 其他行业也是一样的,譬如某软件的开发工作需要在某时完成,调试工作某时完成,销售推广某时完成等,都是时间节点。

回答2:

暂时没想到特别好的方法,只能用笨方法写,不然只能写个游标。时间是个复杂的东西,不要把时间想的太简单:

select top 1* from table
where FinishTime>'2016-01-01 08:00:00.000'
order by FinishTime
union all
select top 1* from table
where FinishTime<'2016-01-01 08:00:00.000'
order by FinishTime desc

回答3:

select * from tableName
where 
FinishTime=(select MAX(FinishTime) from tableName where FinishTime<='2016-01-01 08:40')
or 
FinishTime=(select Min(FinishTime) from tableName where FinishTime>'2016-01-01 08:40')