gpt4 book ai didi

mysql - SQL - 记录两个日期之间和日期

转载 作者:行者123 更新时间:2023-11-29 10:43:46 25 4
gpt4 key购买 nike

我正在编写查询来检查日期范围内的两个日期。基本上是请假申请。如果用户有从“2017-07-13”到“2017-07-17”的请假申请记录,我想禁止用户在这两个日期以及这两个日期之间的日期(即 14 ,15 和 16)

我编写了以下查询,并尝试使其成功,但没有成功。提前致谢

SELECT * FROM `leaves` WHERE emp_id=8 AND from_date BETWEEN'2017-07-12' AND 
'2017-07-14' AND to_date BETWEEN '2017-07-12' AND '2017-07-14' AND
status!='Rejected'

表格数据

| emp_id | from_date  | to_date    | status   |
|--------|------------|------------|----------|
| 8 | 2017-07-13 | 2017-07-17 | Approved |
| 8 | 2017-07-31 | 2017-07-31 | Pending |

示例输入(输出)

  • 从日期 = 2017-07-14 AND 到日期 = 2017-07-16(返回第一行)
  • 从日期 = 2017-07-12 到日期 = 2017-07-14(返回第一行)
  • 从日期 = 2017-07-14 AND 到日期 = 2017-07-18(返回第一行)
  • 从日期 = 2017-07-15 到日期 = 2017-07-15(返回第一行)
  • 从日期 = 2017-07-12 到日期 = 2017-07-12(不返回任何内容)
  • 从日期 = 2017-07-18 到日期 = 2017-07-18(不返回任何内容)

最佳答案

SELECT * 
FROM leaves
WHERE emp_id = 8
AND status != 'Rejected'
AND from_date < '2017-07-16'
AND to_date > '2017-07-14'

请注意,对于此查询而言,只要格式正确,存储字符串还是日期都没有区别。但出于其他原因,您应该始终使用正确的数据类型存储数据。

此外,您可能希望将上述符号之一(但可能不是两者)更改为 <= 或 >=

关于mysql - SQL - 记录两个日期之间和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45004777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com