原因:因为要统计每天的留言总数,在网上到处查都是原生的sql语句,没有tp5助手函数写法,这里记一下
public function group(){
//获取当前时间0点时的时间戳
$time = time();
$a=date("Y-m-d",$time);
$end = strtotime($a)+3600*24;
$start = $end-3600*24*7;
//一个星期内的时间
$sdata['time'] = [
['gt',$start],
['lt',$end],
];
//以每天的时间为分组条件,查询每天留言统计总数
$res = db('msgbox')
->where($sdata)
->field("DATE_FORMAT(FROM_UNIXTIME(time),'%Y-%m-%d') as date,count(*) as total")
->group("DATE_FORMAT(FROM_UNIXTIME(time),'%Y-%m-%d')")
->select();
//查看sql语句
echo db('msgbox')->getLastSql();
//输出结果
dump($res);die;
//return $this->fetch();
}
总结:刚开始看到 DATE_FORMAT(time,'%Y-%m-%d'),自己试了半天没用,后来发现自己存储在数据
库的是时间戳,需要用DATE_FORMAT函数将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
所以在数据库中用时间戳存储的用DATE_FORMAT(FROM_UNIXTIME(time),'%Y-%m-%d'),直接存储
日期"YYYY-MM-DD"格式用DATE_FORMAT(time,'%Y-%m-%d')。