zoukankan      html  css  js  c++  java
  • 取与指定时间最近的数据集

    if object_id('[tabletest]') is not null drop table [tbl]
    create table [tabletest]([DATime] datetime,[DaWeight] varchar(5))
    insert [tabletest]
    select '2012-03-15 14:24:00.000','300Kg' union all
    select '2012-03-15 14:25:00.000','400Kg'
    go
    declare  @datimenow  DateTime
    set @datimenow=getdate()
    select  *   from   tabletest
    --直接取最新的记录
    select top 1 * from tabletest order by DATime desc
    --取小于当前时间的最新的记录
    select top 1 * from tabletest where DATime < @datimenow order by DATime desc
    --如果是取离当前时间最近的,包括大于当前时间,按照秒来算.
    --如果只有一条记录.
    select top 1 * from tabletest order by abs(datediff(ss,datime,@datimenow)) 
    --如果可能存在多条记录.
    select * from tabletest where abs(datediff(ss,datime,@datimenow)) = (select min(abs(datediff(ss,datime,@datimenow))) from tabletest) 
    --根据差值排序,取序列号。根据指定序列号返回数据。
    select * from(
    select ROW_NUMBER()over(order by datediff(mi,datime,getdate())) as id,
    * from tabletest) a where id=1 
  • 相关阅读:
    4Sum
    3Sum Closest
    3Sum
    Longest Common Prefix
    Roman to Integer
    thinkphp3.2自定义配置文件
    centos7下git的使用和配置
    git 报错
    Git服务器安装详解及安装遇到问题解决方案
    centos GIT安装
  • 原文地址:https://www.cnblogs.com/ssol/p/2486843.html
Copyright © 2011-2022 走看看