当前位置: 首页 > 面试题库 >

MYSQL添加最新工作日

桂志诚
2023-03-14
问题内容

我想在提供的日期上加上5天,但计算必须跳过周末。

我已经知道如何添加5天而不跳过周末:

SELECT DATE_ADD(`date_field`, INTERVAL 5 DAY) As FinalDate
FROM `table_name`;

现在,我希望返回的值跳过周末。

目前,如果date_field = 2016-07-22结果是,2016-07-27
但我希望结果是2016-07-29


问题答案:

试试这个:

SELECT DATE_ADD(
    date_field,
    INTERVAL 5 + 
    IF(
        (WEEK(date_field) <> WEEK(DATE_ADD(date_field, INTERVAL 5 DAY)))
        OR (WEEKDAY(DATE_ADD(date_field, INTERVAL 5 DAY)) IN (5, 6)),
        2,
        0)
    DAY
    ) AS FinalDate
FROM `table_name`;

怎么运行的:

  • 首先,它将在您的约会上增加5天。
  • 其次,当date_field和5天后分别在两个星期内时,必须再添加2天。
  • 第三,当5天后为Sat或时Sun,必须再添加2天。


 类似资料:
  • 问题内容: 我需要一个MySQL函数,该函数将允许我经过多个工作日(星期一至星期五)和开始日期DATE或DATETIME(与我的实现无关紧要),并使其返回多个工作日的新DATE或DATETIME。将来。 示例:假设“ 2013-09-01”是星期一,则返回“ 2013-09-16”。 同样:返回“ 2013-09-01” 我找到了我所需要的MSSQL数据库的此功能(我认为),但MySQL除外。我试

  • 问题内容: 我已经浏览了几乎所有以前的线程,但是仍然无法正常工作。我正在尝试向现有工作簿中添加新工作表。我的代码有效,但是它继续添加更多(实际上很多)工作表。我不知道解决方案。下面是我的代码 问题答案: 如果要向现有电子表格中添加工作表,只需继续并将新工作表添加到文件中,而不是复制对象并尝试向其中添加新工作表。

  • 27.3.1. 步骤分析 27.3.2. 编写步骤 在MySQL中,你可以用C++定义一个步骤,在一个查询被发送到客户端之前访问和修改其中的数据。修改可以一行接一行地做,或者按照级别成组(GROUP)地做。 我们创建一个范例步骤来演示你可以做的。 此外,我们推荐你看一下mylua。通过它你可以用 LUA语言把运行时里的一个步骤加载到mysqld中。 27.3.1. 步骤分析 analyse([ma

  • 问题内容: 我最近问了一个有关“自我加入”的问题,得到了一个很好的答案。 该查询用于查找事件1之后1天的事件2的ID,开始日期和价格。 该代码工作正常。 但是我不知道如何。 有人可以尽可能详尽地解释一下-查询的不同部分是什么以及它们做什么? 非常感谢您的帮助,无论出于什么原因,我都很难解决这个问题。 问题答案: 我试图理解的方式是在第一块上写出两个列表,分别标记为event1和一个event2。然

  • 我有一个自定义函数,它在工作表中最后一个非空行下插入一个新行,并将特定范围复制到这个新行。当我用自定义菜单项触发它时,这个功能工作正常。 但是,当我将此自定义函数添加到onOpen(e)触发器时,脚本不起作用。我排除了故障,并在我的函数中添加了一个警报——警报会触发,因此函数会在正确的位置读取。 请建议如何让我的脚本在打开时工作? 以下是我的自定义函数代码:

  • <php>$last_users=sp_get_users("field:*;limit:0,8;order:create_time desc;");</php> <ul class="list-unstyled tc-photos margin-bottom-30"> <foreach name="last_users" item="vo"> <li> <a href="