数据表checkwork
userid startdate enddate re
1 2011-11-01 2011-11-03 请假
1 2011-11-25 2011-11-26 因公外出
2 2011-11-04 2011-11-06 节假日我现在需要查出11月份,userid为1的人的,“请假”的天数并显示出来,怎么实现啊??sql语句怎么写??...
userid startdate enddate re
1 2011-11-01 2011-11-03 请假
1 2011-11-25 2011-11-26 因公外出
2 2011-11-04 2011-11-06 节假日我现在需要查出11月份,userid为1的人的,“请假”的天数并显示出来,怎么实现啊??sql语句怎么写??...
我是想要把11月中的某一天作为查询条件,startdate为开始日期,enddate为结束日期
我想得到是如下这样的效果,这应该怎么写啊??我已经通过循环得到了每天的日期,主要是如何把它作为查询条件放到sql语句里啊????
用户id 1
2011-11-01 请假
2011-11-02 请假
2011-11-03 请假
2011-11-04
2011-11-05
2011-11-06
2011-11-07
....
2011-11-24
2011-11-25 因公外出
2011-11-26 因公外出
2011-11-27
我每次循环只能得到一个日期
我现在就是搞不明白,我应该怎么用这一个日期和数据库里面的进行比较,如果符合的话(即在startdate和enddate之间)然后才显示re里的内容啊...
我每次循环只能得到一个日期
我现在就是搞不明白,我应该怎么用这一个日期和数据库里面的进行比较,如果符合的话(即在startdate和enddate之间)然后才显示re里的内容啊...
这种显示方式基本没有办法有用sql一句出来的(似乎需要建临时表等方法除外)
你的方法倒也是可以实现的(就是不是很科学)
比如你要查2011-11-01 id1的出勤情况:
select * from checkwork where userid='1' and startdate<='2011-11-01' and enddate>='2011-11-01'
查出来的记录显示为:
2011-11-01 请假
2011-11-02 请假
2011-11-03 请假
2011-11-04
2011-11-05
2011-11-06
2011-11-07
....
2011-11-24
2011-11-25 因公外出
2011-11-26 因公外出
2011-11-27对吗
<?php
$startime="2011-11-11";//指定开始日期
$endtime="2011-12-02";//指定结束日期
Checkwork($startime,$endtime);
function Checkwork($startime,$endtime){
while($startime<=$endtime){
//===================================
//这段是取$remak的值,没有access环境测试,你自己改一下吧!主要目的是取出时间段内$remak的值
$sql="select * from checkwork where userid='1' and startdate<='$startime' and enddate>='$startime'";
$rs = $conn->Execute($sql);
$remak=$rs->Fields['remak']->Value;
//=================================
echo $startime."-------".$remak."<br>";//读出日期与备注字段
$startime=date('Y-m-d',strtotime($startime)+86400);
}
}
?>
$startime="2011-11-11";//指定开始日期
$endtime="2011-12-02";//指定结束日期
Checkwork($startime,$endtime);
function Checkwork($startime,$endtime){
while($startime<=$endtime){
/*
* 按上面的sql语句提取出$reamk的值
* $sql="select * from checkwork where userid='1' and startdate<='$startime' and enddate>='$startime'";
* $rs = $conn->Execute($sql);
* $remak=$rs->Fields['remak']->Value;
*/
echo $startime."-------备注".$remak."<br>";//读出日期与备注字段
$startime=date('Y-m-d',strtotime($startime)+86400);
}
}
?>