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

如何通过SQL获取员工入职90天及1年后的薪资率?

获取入职90天及1年后的薪资率解决方案

你考虑到周度薪资核算的时间差这点非常关键——毕竟很少会刚好在第90天或者满1年当天做薪资更新,所以用时间范围来匹配是完全正确的思路。我来帮你把这个逻辑优化得更严谨:

核心思路

因为薪资是周度核算,我们需要把目标日期(入职+90天、入职+1年)前后扩展一个完整的薪资周周期,确保不会漏掉对应的薪资记录。你之前用的+90到+97(7天范围)逻辑没问题,1年的情况同理,我们可以给入职满365天的日期也加上7天的缓冲范围。

优化后的SQL示例

SELECT 
    employee_id, -- 建议加上员工ID,方便对应到具体员工
    payrate,
    checkdate,
    startdate
FROM 
    dbo.table
WHERE 
    -- 匹配入职90天左右的周度薪资记录
    (checkdate BETWEEN DATEADD(day, 90, startdate) AND DATEADD(day, 97, startdate))
    OR
    -- 匹配入职1年左右的周度薪资记录
    (checkdate BETWEEN DATEADD(day, 365, startdate) AND DATEADD(day, 372, startdate))

额外说明

  • 用DATEADD函数计算目标日期比直接用+更规范,在不同数据库环境下兼容性更好(比如SQL Server里startdate + 90可行,但DATEADD是更通用的写法)。
  • 如果你的薪资周有特定规则(比如固定每周一到周日),还可以进一步用日期函数精准匹配对应周的记录。比如要匹配入职90天所在的完整周,可以用DATEPART(week, checkdate) = DATEPART(week, DATEADD(day,90,startdate)),但这种方式要注意跨年时的周数计算问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:05:07