返回与“当前时间最近”的记录,该如何处理
返回与“当前时间最近”的记录
在表“TableTest”中有一个字段“DATime”,它是“datetime”类型的。现在想查“DATime字段”与“当前时间”最相近的一条记录。比如:
“2012-03-15 14:24:00.000” “300Kg”
“2012-03-15 14:25:00.000” “400Kg”
两条记录。
现在传入“C#”(“不知.net 下“DateTime 字符串”和“SqlServer”一致否?)下的“DataTime”时间类型“2012-03-15 14:27:00”
问题:现在取时间最相近的,也就是“2012-03-15 14:25:00.000”的记录,应该怎么办?
------解决方案--------------------
在表“TableTest”中有一个字段“DATime”,它是“datetime”类型的。现在想查“DATime字段”与“当前时间”最相近的一条记录。比如:
“2012-03-15 14:24:00.000” “300Kg”
“2012-03-15 14:25:00.000” “400Kg”
两条记录。
现在传入“C#”(“不知.net 下“DateTime 字符串”和“SqlServer”一致否?)下的“DataTime”时间类型“2012-03-15 14:27:00”
问题:现在取时间最相近的,也就是“2012-03-15 14:25:00.000”的记录,应该怎么办?
------解决方案--------------------
- SQL code
--> 测试数据:[tbl] if object_id('[tbl]') is not null drop table [tbl] create table [tbl]([日期] datetime,[重量] varchar(5)) insert [tbl] select '2012-03-15 14:24:00.000','300Kg' union all select '2012-03-15 14:25:00.000','400Kg' select [日期],[重量] from( select ROW_NUMBER()over(order by datediff(mi,[日期],getdate())) as id, * from tbl) a where id=1 /* 日期 重量 2012-03-15 14:25:00.000 400Kg */ MSSQL日期格式默认是这样的:yyyy-mm-dd hh:mi:ss.xxx 不知道asp.net中是什么样的
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
那句的意思就是按照表里日期与当前日期做差,按照差的从小到大排序,排在第一位的肯定就是离当前日期最近的日期了
------解决方案--------------------
数据库中getdate()就是获取系统当前日期
------解决方案--------------------
- SQL code
select top(1)* from TableTest order by DATime desc
------解决方案--------------------