sql - 如何在 SQL Server 中设置最后营业日期
问题描述
我是 SQL 的新手。我需要在查询中声明最后营业日期。例如,
- 如果当前日期是星期一,则返回上星期五。
- 如果当前日期是周二到周五,则返回昨天。
必须排除周末和国定假日。
我需要这种格式:
declare @LastBizDate as datetime
set @LastBizDate = (DATEADD(DAY, CASE DATENAME(WEEKDAY, GETDATE())
WHEN 'Saturday' THEN -1
WHEN 'Sunday' THEN -2
ELSE -1 END, DATEDIFF(DAY, 0, GETDATE())))
我真的很感谢你的帮助!
解决方案
declare @LastBizDate as datetime
set @LastBizDate = CASE DATENAME(WEEKDAY, GETDATE())
WHEN 'Monday' THEN GETDATE()-3
WHEN 'Sunday' THEN GETDATE()-2
ELSE GETDATE()-1 END
PRINT @LastBizDate
推荐阅读
- mysql - 即使没有记录,如何在 MySQL 中返回所有前 30 天的列表?
- php - 基于视图生成 PDF 作为电子邮件附件 - Laravel
- jquery - 如何使用“输入”创建构造函数?
- excel - 比较两张表中唯一 ID 号中的唯一代码号和最高比率
- express - 使用 Cloudflare 的 Express.js 头盔 CSP 设置 - 放入什么?
- python - 在 json dict 中添加键和值
- php - 呼叫 URL 友好的正确链接
- autocomplete - Visual Studio 2019 中的自动完成/智能感知损坏
- c++ - std::string 的 C++ c_str 返回空
- javascript - 如何修复代码不移动类别下的频道