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

如何创建日期标量函数:根据日期是否过中旬返回月初或月末

实现按日期判断返回当月第一天或最后一天的SQL逻辑

需求:接收一个日期参数,若日期超过当月15日(即日部分>15),返回当月第一天;未超过时返回当月最后一天。

以下是具体的SQL实现代码:

-- 声明测试用的日期变量
Declare @todate datetime = '20200301'

select
Case When DAY(@todate) > 15
Then Cast(DATEADD(dd, -( DAY( @todate ) -1 ), @todate) as date)  -- 计算并返回当月第一天
else 
Cast(DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, 0, @todate) + 1, 0))as date)  -- 计算并返回当月最后一天
end

代码逻辑说明:

  • DAY(@todate):提取传入日期的“日”数值,用于判断是否超过15日
  • 当月第一天计算:用DATEADD减去当前日减1的天数,把日期回退到当月1号
  • 当月最后一天计算:先通过DATEDIFF和DATEADD获取下一个月的第一天,再减1天,得到当月的最后一天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:10