PHP/MySQL日期搜索

PHP/MySQL日期搜索,php,mysql,datetime,Php,Mysql,Datetime,我的脚本对所有销售都很好,但在15日跳过了所有销售 该期间的MySQL行如下所示: ID:10开始时间:2010-12-01结束时间:2010-12-15 销售的MySQL行如下所示: 日期:2010-12-15 20:40:26 $period_info=mysql_fetch_array(mysql_query("SELECT start,end FROM period WHERE id='$period' LIMIT 1")); $start=$period_info["start"];

我的脚本对所有销售都很好,但在15日跳过了所有销售

该期间的MySQL行如下所示: ID:10开始时间:2010-12-01结束时间:2010-12-15

销售的MySQL行如下所示: 日期:2010-12-15 20:40:26

$period_info=mysql_fetch_array(mysql_query("SELECT start,end FROM period WHERE id='$period' LIMIT 1"));
$start=$period_info["start"];
$end=$period_info["end"];

$total_sales=mysql_num_rows(mysql_query("SELECT * FROM sales WHERE seller='$seller' AND date BETWEEN '$start' AND '$end'"));

和想法?

只比较日期时间的日期部分,忽略时间部分:

WHERE DATE(`date`) BETWEEN '$start' AND '$end'

仅比较日期时间的日期部分,忽略时间部分:

WHERE DATE(`date`) BETWEEN '$start' AND '$end'

为了在与日期或时间值一起使用时获得最佳结果,请使用CAST()将值显式转换为所需的数据类型。示例:如果将一个日期时间与两个日期值进行比较,请将日期值转换为日期时间值。如果在与日期的比较中使用字符串常量(如“2001-1-1”),请将字符串强制转换为日期。

若要在与日期或时间值一起使用时获得最佳结果,请使用cast()将值显式转换为所需的数据类型。示例:如果将一个日期时间与两个日期值进行比较,请将日期值转换为日期时间值。如果在比较日期时使用字符串常量,如“2001-1-1”,请将字符串转换为日期。

这是因为MySQL使用00:00:00作为日期类型的时间。我认为你可以使用:


“选择*FROM sales,其中seller='$seller'和(将日期转换为日期)介于'$start'和'$end'”

这是因为MySQL使用00:00:00作为日期类型的时间。我认为你可以使用:


“从销售中选择*,其中卖家=“$seller”和(将日期转换为日期)介于“$start”和“$end”之间

太棒了!我现在可以停止拔头发了。:)谢谢令人惊叹的我现在可以停止拔头发了。:)谢谢