知识点、一
今天在统计数据时,想要用2个列表做数据排序
- 首先想到的 order by last_time and id desc 这种方式两个字段都是降序的
但实际不能执行在5.6版本的数据库会抛出异常(and隔开哪个,第二个参数不起作用。)
正确方式: order by last_time desc,id desc
SELECT
ee.id,ee.uid as euid,ee.enid,ee.`status`,(ee.start1+ee.start2+ee.start3) AS chengji,
ct.title,ct.team_id,ct.id as cid,
#us.realname as erealname,us.mobile as emobile,
t.team_name,t.team_leader
FROM `expert_entry` AS ee
INNER JOIN compet_teams AS ct ON ee.enid = ct.id
#INNER JOIN users AS us ON ee.uid = us.id
INNER JOIN teams AS t ON ct.team_id = t.id
WHERE
ee.cid=:cid
AND ee.is_deleted = 0
#AND chengji > 10
GROUP BY ct.title
ORDER BY chengji DESC , team_id asc
LIMIT 300;
知识点、二
(ee.start1+ee.start2+ee.start3) AS chengji
在MySQL数据库查询时可对,多个可相加的列进行算数相加。(浮点数,int相加正常,string等类型未测试)是不是很方便!
知识点、三
SELECT DATE_FORMAT(u.created_at,'%Y') AS utime,count(*) FROM `users` AS u
WHERE DATE_FORMAT(u.created_at,'%Y') = '2020'
假设 u.created_at 字段值是 2020-06-19 03:31:48 这样时间类型
当以时间类型的字段值做统计条件时?比如统计2020年的新增会员人数,这个时候就用到这个
(u.created_at,'%Y') AS utime
这样时间的转换就好了
date_format(now(), '%Y-%m-%d');
时间转时间戳
unix_timestamp('2018-01-15 09:45:16');
时间戳转时间
mysql> select from_unixtime(1515980716)
时间格式化
from_unixtime(1515980716, '%Y-%m-%d %H:%i:%S')
当前系统72小时前的时间
NOW() - interval 72 hour
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”
知识点、四
Excel换行实践
$data[$key]['指导教师'] = implode(PHP_EOL, array('姓名:'.$tutors[0]->realname,'手机:'.$tutors[0]->mobile,'邮箱:'.$tutors[0]->email,'院校:'.$tutors[0]->school) );
Excel::create('决赛各参赛队成员名单' . date("Y-m-d H_i_s",time()), function($excel) use($data) {
$excel->sheet('决赛信息名单', function($sheet) use($data) {
//getStyle("D:H") 表示重D to H的表格列区域设置文字换行
$sheet->getStyle("D:H")->getAlignment()->setWrapText(true);
$sheet->fromArray($data);
});
})->export('xls');
更复杂的应用去查看源码喽。。。
日记一小,月集一大。