我先把我建立的数据发出来(只是为了测试,可能不是很严谨):
首先是创建数据表(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/htmlcharset="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']) <strtotime($queryEnd) ? strtotime($value['end']) :strtotime($queryEnd)//原理同上
$day = (($endDate-$beginDate)/(3600*24))+1//转化为天数
echo 'id为'.$value['id'].'的人请了'.$day.'天假<br>'
}
//以上代码的运行结果为:
//id为1的人请了3天假
//id为2的人请了7天假
//id为3的人请了4天假
sql:select (zhu1+zhu2+zhu3+zhu4) as sumsfrom sumcount order by sums desc limit a,b
这条sql是将字段值相加后排序(从大到小)
a:去除的条数
b:总记录数
mysql是我们经常使用的数据库之一,那么如何用mysql创建数据表呢?下面我就给大家分享一下。
工具/材料navicat for mysql
01首先打开navicat for mysql工具,打开一个数据库,然后右键单击表,选择新建表,如下图所示
02接下来在d出的新建表界面中,我们通过添加栏位来增加表的字段,如下图所示
03字段都添加完毕以后,我们按Ctrl+S组合键,这个时候会让你输入表名,我们输入完毕点击确定即可,如下图所示
04最后我们回到软件的主界面,你就会看到刚才添加的表已经显示在主界面了,如下图所示,这代表我们已经添加表成功
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)