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

时间:2018-10-11 10:23:29

标签: php mysql

我已为日期范围内的员工分配了班次。

我必须列出指定在特定月份(例如十月)的班次。

我将为轮班分配轮班开始日期和轮班结束日期。

说轮班开始日期为10月28日,轮班结束日期为11月4日。

现在,如果要显示分配给11月的班次,则不会显示该日期的班次。

我已经使用

进行了检查
shiftStartDate>=oct 1 

shiftEndDate<=oct31 

我也尝试在查询之间使用。

如果轮班开始日期和结束日期在同一月份,则此方法很好。

2 个答案:

答案 0 :(得分:1)

您可以利用mysql中的BETWEEN函数来选择数据,其中特定日期在 2个给定日期之间(即您的 shiftStartDate shiftEndDate 列)。

示例:

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

example_date是您要检查的日期,例如'2018-10-11'

答案 1 :(得分:0)

如果在班次开始结束中具有 DATETIME 列,则需要查询所有在当前月份之内或之前开始,或者在当前月份之内或之后结束,例如获得八月份的班次:

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

查询后我将实际计算的轮班天数。

还要确保使用正确的 datetime 格式。