php - 将两个日期分成几个时期

标签 php sql mysql

假设用户想在 2010 年 10 月 17 日到 2010 年 11 月 15 日休假。

在某些设置页面上,我声明每个月的开始日期和结束日期如下:

m1 :from 1-10-2010 to 20-10-2010
m2: from 21-10-2010 to 10-11-2010
m3: from 11-11-2010 tom 30-11-2010

正如我们所见,假期与多个时期(m1、m2、m3)相关,而不仅仅是一个时期,所以我需要将假期分成几个时期,时期数组应该如下所示:

from 17-10-2010 to 20-10-2010  
from 21-10-2010 to 10-11-2010  
from 11-11-2010 to 15-11-2010  

我觉得只用PHP解决问题会很复杂,所以想用PHP和MySQL函数来解决问题,

有什么帮助吗?

谢谢

最佳答案

SELECT  GREATEST(period_start, @vacation_start),
        LEAST(period_end, @vacation_end)
FROM    mytable
WHERE   period_start <= @vacation_end
        AND period_end >= @vacation_start

关于php - 将两个日期分成几个时期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172351/

相关文章:

mysql - 一起显示两个mysql表的内容

sql - 在 SQL 中添加由任意值填充的列

php - MySQL-从两列中两个不同的行满足相同条件的地方获取相似度分数

php - PHP:implode()函数对多字节字符串安全吗?

php - 无法使用 INSERT INTO 向 mysql 表中插入数据

php - 使用 PDO 从 MAX 查询设置变量

来自多行的 MySQL 条件

javascript - 如何在 onclick 事件上重新加载 jquery?

mysql - 如何让这个 SQL 查询更加优雅?

javascript - 使用PHP+JSON+AJAX清除以前从数据库返回的HTML数据