如何在sql中显示两个给定日期之间的值

0dxa2lsx  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(295)

我已经为员工分配了日期范围内的班次。
我得列出特定月份的班次,比如说10月份。
我将分配带有班次开始日期和班次结束日期的班次。
假设轮班开始日期为10月28日,轮班结束日期为11月4日。
现在,如果要显示分配给11月份的班次,则不显示该日期的班次。
我已经检查过了

shiftStartDate>=oct 1

以及

shiftEndDate<=oct31

我还尝试了使用between查询。
如果轮班开始日期和结束日期在同一个月内,则此操作正常。

2uluyalo

2uluyalo1#

如果您有班次开始和结束的日期时间列,则需要查询在当前或之前开始或在当前月份或之后结束的所有班次,例如,要获取八月的班次:

SELECT * FROM `shift`
  WHERE `start` <= '2018-08-31'
  AND `end` >= '2018-08-01';

我在查询后实际计算的轮班天数。
还要确保使用正确的日期时间格式。

omtl5h9j

omtl5h9j2#

你可以利用 BETWEEN 函数在mysql中选择特定日期介于两个给定日期之间的数据(即shiftstartdate和shiftenddate列)。
例子:

SELECT *
FROM
    example_table
WHERE
    (example_date BETWEEN shiftStartDate AND shiftEndDate);

例如,日期是您要核对的日期,例如“2018-10-11”。

相关问题