要做一个订单查询接口,需要取出当天的订单。而数据表里面只有一个下单时间字段,保存的类型是时间戳格式的。不是2010-10-5格式的。编写的查询都是有两个时间点进行限制取数据的。由于只有一个支点,没做过类似的。编写sql查询的时候。开始遇到一点小障碍。
要做一个订单查询接口,需要取出当天的订单。而数据表里面只有一个下单时间字段,保存的类型是时间戳格式的。不是2010-10-5格式的。编写的查询都是有两个时间点进行限制取数据的。由于只有一个支点,没做过类似的。编写sql查询的时候。开始遇到一点小障碍。
听同事说,可以都转化成2010-10-5的格式,数据库保存的时间戳转化成该格式,对比年,天两部分,相等就表示同年同一天了。
上面这种方式可以达到目的,不过,工作量大一点。出发点是:去转化数据库的时间戳为date格式。经过朋友的提醒,我想到了另外一个思路:统一转化成unix时间戳进行对比。这样,编写sql查询的时候变得更方便。简单了。用之前的方式,不仅编写sql的时候需要用到数据库函数。而且,php代码还是需要做同年以及同日判断(首先要同年才行,否则,日相等不符合要求的)
下面是当时写的代码:
/*
*+ -------------------------------
* 计算当天起始点和结束点时间戳 取出当天的数据
*+ ------------------------------
*/
$year = date("Y");
$month = date("m");
$day = date("d");
$dayBegin = mktime(0,0,0,$month,$day,$year);//当天开始时间戳
$dayEnd = mktime(23,59,59,$month,$day,$year);//当天结束时间戳
$query = "SELECT * FROM `fanli_info` WHERE insert_time$dayBegin";