mysql两个时间段之间的数据_我想查询两个时间段之间的数据,我的sql语句错在哪里?...

你的位置:

问答吧

-> PHP基础

-> 问题详情

我想查询两个时间段之间的数据,我的sql语句错在哪里?

$riqi1=trim($_POST[riqi1]);

$riqi2=trim($_POST[riqi2]);

$riqi1=date("Y-m-d",strtotime($riqi1));

$riqi2=date("Y-m-d",strtotime($riqi2));

//echo $riqi1;

//echo "
";

//echo $riqi2;

$sql="SELECT * FROM en_dingdan where time between $riqi1 and $riqi2";

其中我做了测试

echo $riqi1;

echo "
";

echo $riqi2;

对应输出一下结果:

2009-06-04

2009-06-13

我数据库是mysql,其中time 字段是date类型

其中有数据为:2009-06-12

按照我上面的思路应该能输出内容,但是测试时什么结果都没有输出

作者: 站长刘

发布时间: 2009-06-12

站长刘

建议不要使用 between  因为这个我查过资料 是双次判断 会影响数据库操作

建议使用 >= and <=

作者: baddie

发布时间: 2009-06-12

请保存时间戳吧,不要保存date类型

作者: xuer

发布时间: 2009-06-12

$sql="SELECT * FROM en_dingdan where time > $riqi1 and time < $riqi2";

mysql可以直接判断这种格式的时间

作者: keailyf

发布时间: 2009-06-12

xuer

谢谢回复,再说明白一点,是不是sql语句没什么问题,你所说的的时间戳能不能再详细说明一点

作者: 站长刘

发布时间: 2009-06-12

keailyf

我这样修改

$sql="SELECT * FROM en_dingdan where time > $riqi1 and time < $riqi2";

$result=$db->query($sql);

while($rs=$db->loop_query($result))

{

if($rs==false)

{

echo "

对不起,没有查找到该订单!
";

}

else

{

?>

gsgsgsdgsd

}

}

?>

还是什么也每输出,也没提示错误,就是显示的空白

作者: 站长刘

发布时间: 2009-06-12

恩?都下班了……

作者: 站长刘

发布时间: 2009-06-12

$sql="SELECT * FROM en_dingdan where time > '$riqi1' and time < '$riqi2'";

改成这样呢?

我见过很多这类型的SQL语句 在变量名上都加有单引号的 不知道你这里加上单引号是不是这个原因呢?

作者: tl624220

发布时间: 2009-06-12

$sql="SELECT * FROM en_dingdan where time >= '".$riqi1.'" and time <= '".$riqi2."'";

更正楼上的

否则 单引号的话 就不是变量了

作者: baddie

发布时间: 2009-06-12

这样写,就可以了

$sql="SELECT * FROM en_dingdan where time between '".$riqi1."' and '".$riqi2."'";

作者: 站长刘

发布时间: 2009-06-13

baddie

谢谢你

不过这里'".riqi1."'应该这样写,就ok了

作者: 站长刘

发布时间: 2009-06-13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值