mysql 统计请假天数_php统计员工请假天数,最好能有代码说明

展开全部

我先把我建立62616964757a686964616fe4b893e5b19e31333335343938的数据发出来(只是为了测试,可能不是很严谨):

首先是创建数据表(mysql中命令行):create table fangjia(

id int(4) not null primary key auto_increment,

begin date not null,

end date not null);

然后是插入测试数据:mysql> insert into fangjia (begin,end) values ('2011-02-13','2011-02-18'),('2011

-02-22','2011-02-28'),('2011-03-12','2011-03-16');

目前数据表有的数据为:mysql> select * from fangjia;

+----+------------+------------+

| id | begin      | end        |

+----+------------+------------+

|  1 | 2011-02-13 | 2011-02-18 |

|  2 | 2011-02-22 | 2011-02-28 |

|  3 | 2011-03-12 | 2011-03-16 |

+----+------------+------------+

下面是php代码:header('Content-type:text/html;charset="utf-8"');

$con=mysql_connect('localhost','root','');//这里根据你自己的情况来写

mysql_select_db('test',$con);//这里根据你自己的情况来写

$queryBegin="2011-02-16";//这是要查询的开始日期

$queryEnd="2011-03-15";//这里是要查询的结束日期

$ab=mysql_query("select * from fangjia where begin <='{$queryEnd}' and end >='{$queryBegin}'");//只有数据库中,begin字段的值 小于等于 开始日期,并且end字段的值 大于等于 结束日期的时候,才是符合条件的

while($value=mysql_fetch_assoc($ab)){

$beginDate=strtotime($value['begin'])>strtotime($queryBegin) ? strtotime($value['begin']) :strtotime($queryBegin);//转化为时间戳来运算,如果字段begin的日期大于开始日期,那么计算时使用的开始日期就是end字段的值,否则为开始日期的值

$endDate=strtotime($value['end'])  

$day=(($endDate-$beginDate)/(3600*24))+1;//转化为天数

echo 'id为'.$value['id'].'的人请了'.$day.'天假
';

};

//以上代码的运行结果为:

//id为1的人请了3天假

//id为2的人请了7天假

//id为3的人请了4天假

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值