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

SQL中DATEDIFF求和及EOMONTH获取月末值常见问题咨询

SQL日期计算问题解答

问题1:SUM(DATEDIFF计算逻辑问题

  • 核心问题是未处理DATE_E为NULL的场景:DATEDIFF函数任意输入参数为NULL时,返回结果也为NULL,而SUM聚合会自动忽略NULL值,导致所有DATE_E为NULL的行的天数完全没有被计入统计,最终求和结果偏小。
  • 修复方案可根据业务需求二选一:
    1. 若DATE_E为NULL时默认取当前日期计算:
    SUM(DATEDIFF(DAY, DATE_S, COALESCE(DATE_E, GETDATE())) + 1)
    
    1. 若DATE_E为NULL时对应行统计为0:
    SUM(COALESCE(DATEDIFF(DAY, DATE_S, DATE_E) + 1, 0))
    

问题2:EOMONTH输入年月字符串报错修复

  • 报错原因:'2019-05'是字符串格式的年月值,不是EOMONTH要求的DATE/DATETIME类型输入,仅拼接不做类型转换无法被函数识别。
  • 修复代码:
DAY(EOMONTH(CAST(CONCAT(DATE_S, '-01') AS DATE)))

逻辑为先给年月字符串拼接当月1号,转为标准日期格式后再做类型转换,即可正常传入EOMONTH计算当月最后一天的日期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:00:02