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

如何在SQL中实现三天后数据查询?所写SQL语句是否正确?

你的SQL条件分析与优化建议
  • 原条件逻辑是正确的,能得到符合需求的结果

    • 原语句的核心逻辑是:把dInsertedDate加3天后转成日期类型,和今天的日期做比较,只要前者小于等于今天,就说明该员工的数据接收时间已经过了三天(包括第三天当天),完全匹配你“查询数据接收三天后的所有员工详情”的需求。
    • 不过这里有个可以简化的点:convert(date, ..., 105)里的样式参数105是多余的——转成date类型时,SQL Server会自动忽略格式差异正确解析,所以可以简化成:
      select * from tbl_Emp where convert(date, dInsertedDate + 3) <= convert(date, getdate())
      
  • 更直观的等价写法
    你也可以把条件调整为直接比较原始日期,可读性更强,效果和原语句完全一致:

    select * from tbl_Emp where dInsertedDate <= dateadd(day, -3, convert(date, getdate()))
    

    这个写法的意思是:员工数据接收日期早于或等于今天往前推3天的日期,逻辑更直白,也方便后续维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:05:22