近期做了一套战绩系统,战绩要按天查询,每天赢了多少分,打了多少局都要列出来。
可是,怎么用sql进行按天分组呢?
首先,我们的表里要确认已经有了时间戳(int(10)),我这里用的是create_time。
接下来,开始编辑语句
FROM_UNIXTIME函数支持转换时间戳为字符串,我们把时间戳转换为日期
FROM_UNIXTIME( create_time, '%Y年%m月%d日' )
然后,根据这个日期分组就可以了,下面是完整的SQL语句
select FROM_UNIXTIME( create_time, '%Y年%m月%d日' ) as day,count(*) as count,sum(score) as score from t_everygames where user_id =$userid group by FROM_UNIXTIME( create_time, '%Y年%m月%d日' ) order by 1 limit 0,6
同理,还可以按照年、月、日、时、分来分组,是不是很方便呢?
如果数据库中存的是字符串,例如2018-1-30这种,用到则是date_format()这个函数。