如何使用SQL脚本“获取数据表中行记录离当前日期最近的行记录”的方法分享


摘要:
下文讲述使用sql脚本获取“离当前日期最近的数据行”记录,如下所示:



实现思路:
使用datediff将数据表中的写入时间和当前时间进行相减,得到相应的差值,并取绝对值,然后按照此值进行排序

---mysql:
  select * from tableName  a where 1=1  
      ORDER BY ABS(NOW() - a.writeDate) ASC
      limit 1

---oracle
SELECT * FROM ( 
SELECT *, ABS(NOW() - writeDate) AS sortField 
FROM tableName 
ORDER BY sortField ASC 
) a  WHERE rownum=1

sqlserver:
  select * from tableName  a where 1=1  
      ORDER BY ABS(datediff(ss,getdate()- a.writeDate) ASC

相关阅读:
abs函数用法分享
datediff函数用法分享