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

SQL Server如何基于日期变量SuspensionDate实现月中日比较判断

SQL Server 月初月末判断实现方案

实现逻辑

直接提取日期的日部分做判断:

  • 日部分小于15号,判定为月初
  • 日部分大于等于15号,判定为月末

输入的带时区偏移的ISO格式日期,可以直接转换为SQL Server原生的DATETIMEOFFSET类型处理,避免时区差异导致的日期计算错误。

代码示例

场景1:变量为字符串类型(匹配给出的格式)

DECLARE @SuspensionDate VARCHAR(50) = '2021-11-08T00:00:00.000-05:00'
-- 转换为带时区的日期类型
DECLARE @OffsetDate DATETIMEOFFSET = CAST(@SuspensionDate AS DATETIMEOFFSET)

-- 输出结果
SELECT 
    CASE 
        WHEN DAY(@OffsetDate) < 15 THEN N'月初'
        ELSE N'月末'
    END AS DatePeriod

场景2:字段本身为DATETIMEOFFSET/DATE/DATETIME类型

无需额外转换,直接判断即可:

SELECT 
    CASE 
        WHEN DAY(SuspensionDate) < 15 THEN N'月初'
        ELSE N'月末'
    END AS DatePeriod
FROM 你的表名

补充说明

如果需要把15号也归为月初,把判断条件改为DAY(SuspensionDate) <= 15即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:03