You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数据表中获取指定日期的最近前置日期?

问题分析

你需要从给定数据表中,针对指定员工(empno=1)筛选出小于等于目标日期(2022-08-22)的最大日期,也就是该员工最近的一条不晚于目标日期的记录。

原始数据表

empnodate
12022-08-20 00:00:00
12022-08-19 00:00:00
12022-08-18 00:00:00
12022-08-17 00:00:00

解决方案

方式1:通用SQL(适配绝大多数数据库)

直接通过过滤+聚合函数实现,逻辑简单高效:

SELECT MAX(date) AS target_date
FROM your_table_name
WHERE empno = 1
AND date <= '2022-08-22';

逻辑说明:先筛选出员工1且日期不晚于目标日期的所有记录,再通过MAX()函数取其中最大的日期值,即为你需要的结果。

方式2:窗口函数(适配多员工批量查询场景)

如果需要同时处理多个员工的类似需求,可使用窗口函数分组处理:

SELECT DISTINCT empno,
       FIRST_VALUE(date) OVER (PARTITION BY empno ORDER BY date DESC) AS target_date
FROM your_table_name
WHERE date <= '2022-08-22'
AND empno = 1;

逻辑说明:按员工分组,将符合条件的日期倒序排列,取每组的第一个值,就是该员工最近的符合条件的日期。

内容的提问来源于stack exchange,提问作者Niki_S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:33:45