在表“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 allselect '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
------解决方案--------------------