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

如何用SQL CASE表达式调整日期变量:周一设为上周五,其余设为前一天

解决方案

可以用CASE语句结合DATEPART函数判断当前日期是否为周一,实现你要的逻辑:

declare @date varchar(10)
select @date = CONVERT(varchar(10), 
    CASE DATEPART(weekday, GETDATE())
        WHEN 2 THEN GETDATE() - 3 -- 注:这里默认SQL Server中DATEPART返回2代表周一,若服务器星期起始设置不同,可调整对应数字
        ELSE GETDATE() - 1
    END, 101)
print @date

关键说明

  • DATEPART(weekday, GETDATE())用于获取当前日期的星期序号,默认配置下SQL Server以周日为一周起始(周日=1、周一=2),如果你的服务器设置为周一为一周起始,只需把WHEN后的数字改成1即可。
  • 判定为周一时,用GETDATE()-3得到上周五的日期;其他日期则取前一天,最后统一转换为varchar(10)格式(101对应MM/DD/YYYY格式)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:52:02