sql - 如果日期是周末或银行假日,则调整日期
问题描述
我有一个查询,它从临时表 myTblTemp 将一些新记录插入到表 myTbl 中。
在查询中,如果日期是星期六或星期日,我会调整“AnnDate”字段之一。但是,如果日期是银行假日,我还需要调整 AnnDate。
我有一张桌子, tblBankHoliday 列出了所有需要的即将到来的银行假期。如果在 tblBankHoliday 中找到 AnnDate,我该如何调整我的查询(或者我是否需要一个单独的查询)以增加一天的日期?
我当前的查询
insert into myTbl(AnnDate, USDVal)
case DATENAME(WEEKDAY, AnnDate)
when 'Saturday'
then DATEADD(DD, 2, AnnDate)
when 'Sunday'
then DATEADD(DD, 1, AnnDate)
else AnnDate
end
from myTblTemp
解决方案
制作一张桌子,例如thedays
。将相关期间的所有日期插入其中。例如在一列theday
中。在另一列中,例如isworkday
用 1 标记工作日,用 0 标记非工作日。
然后,您可以在查询中选择给定日期或之后的下一个工作日。
insert into myTbl(AnnDate, USDVal)
(SELECT min(theday)
FROM thedays
WHERE theday >= AnnDate
AND theday.isworkday = 1)
...
from myTblTemp
推荐阅读
- html - 当我使用已经属于另一个网站的 URL 时,背景属性不起作用
- sas - 如何使用 'proc format' 格式化丢失的字符串,以便可以在序列的最后对其进行排序?
- api - 即使我的 API 路由正确,邮递员返回的 HTML 也显示无法发布
- swift - 用于检查接收到的泛型类是否属于泛型类型的泛型函数
- python - 将函数应用于不同的对象(Python)
- r - 添加分钟到一天中的时间(hh:mm),如果时间> 24,则从新的一天开始
- webhooks - 我可以通过团队中的传入 webhook 连接器发布消息,但不是卡片,只是纯文本?
- java - 包不存在 - Apache AnT
- python - 如何将图像转换为 URL Discord Py
- python - Python线程传递参数差异