在php中如何实现按时间分段查询?
在php和数据库Mysql交互查询中,我们常常遇到的就是时间分段查询,例如三个月、15天或是2007年度的订单。此时,我们需要用到的最关键的函数就是mktime函数。
说明:
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])
在这里我们要注意该函数参数的奇怪顺序,这和标准的 UNIX mktime() 调用中的参数顺序不同。许多程序员在脚本调式时常由于混淆这些值而出错。
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 新纪元(1970 年 1 月 1 日)到给定时间的秒数。参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
is_dst 在夏令时可以被设为 1,如果不是则设为 0,或者不知道是否为夏令时的话设为 -1(默认值)。如果不知道,PHP 会尝试自己判断。这可能会产生未预期(但不是错误)的结果。
知道了该函数的作用,现在我们就用该函数来查询下最近三个月内的订单情况,SQL语句如下:
$bgdte=date(”Y-m-d H:i:s”,mktime(date(’H'),date(’i'),date(’s’),date(’m')-3,date(’d'),date(’Y')));
$sql=”SELECT * FROM shopping_order WHERE dtTime>=’”.$bgdte.”‘”;
如果是查询最近15天内的订单,则SQL语句如下:
$bgdte=date(”Y-m-d H:i:s”,mktime(date(’H'),date(’i'),date(’s’),date(’m'),date(’d')-15,date(’Y')));
$sql=”SELECT * FROM shopping_order WHERE dtTime>=’”.$bgdte.”‘”;
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments
还没有评论。
发表评论