SQL 如何取出距离当期时间最近的数

数据如下:

day  A B C D M N

其中:

day 日期,年月日

ABCD 组合起来的id

MN 具体数值,

其中保存的是存量型数据,

取出所有concat( abcd ) 时间上距离当前时间最近的数据






tinydata 发布于 2019-1-25 10:14
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
黄源Lv6中级互助
发布于2019-1-25 10:21

max(day),day不超过当前时间

min(abs(sysday()-day))用子查询

最佳回答
0
啊哈Lv2见习互助
发布于2019-1-25 10:29(编辑于 2019-1-25 10:38)

day跟当前时间取差,差值最小的就是距离当前时间最近的日期

select *
from
(
select DATEDIFF(SYSDATE(),day) as num,concat( abcd ) from table
)a order by abs(num) asc limit 1;
  • tinydata tinydata(提问者) error Every derived table must have its own alias
    2019-01-25 10:36 
  • 啊哈 啊哈 回复 tinydata(提问者) 派生出来的表 忘记写别名了。。。。
    2019-01-25 10:38 
  • tinydata tinydata(提问者) 回复 啊哈 别名加上,不行 需要提取的数据是 原始表格的, 结果返回的是派生的
    2019-01-25 10:43 
  • tinydata tinydata(提问者) 回复 啊哈 需要类似group by concat( abcd ) 每个concat( abcd ) 的最新值
    2019-01-25 10:44 
  • 3关注人数
  • 968浏览人数
  • 最后回答于:2019-1-25 10:38
    请选择关闭问题的原因
    确定 取消
    返回顶部