1.DATE_FORMAT() 用法
定义和用法
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
常用例子:
1.想实现用laravel查询数据中的某个时间字段转日期格式(时间戳转日期格式):
先用函数:FROM_UNIXTIME,将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
语句 : DATE_FORMAT(FROM_UNIXTIME(enter_at), '%Y-%m-%d %H:%i:%s')
例子:
$res = self::select('room_id','duration', \DB::raw("DATE_FORMAT(FROM_UNIXTIME(enter_at), '%Y-%m-%d %H:%i:%s') as enter_at"), \DB::raw("DATE_FORMAT(FROM_UNIXTIME(quit_at), '%Y-%m-%d %H:%i:%s') as quit_at") )->get()->toArray();
2.按(日)分组汇总统计数据
laravel中可以这么写:
->whereDate('push_time','>=','2019-01-01') ->whereDate('push_time','<=','2019-01-10') ->selectRaw("DATE_FORMAT(crontab_doctor_integral.push_time, '%Y-%m-%d') as time") ->groupBy('time')
3.按(月)分组汇总统计数据
->whereDate('push_time','>=','2019-01-01') ->whereDate('push_time','<=','2019-10-10') ->selectRaw("DATE_FORMAT(crontab_doctor_integral.push_time, '%Y-%m') as time") ->groupBy('time')
一、CASE WHEN用法
1. case 字段
when 条件 then 结果
else 结果
end;
2. case
when 条件 then 结果
when 条件 then 结果
else 结果
end;
注:当处理null字段是要用第二种方法,第一种方法查询的结果是错的
用法1:咱们在设计数据库的时候总是会把用户的性别用int存储('0'为女,'1'为男),但是怎么把它转换成汉字显示呢?
select
name as '名字',
(case sex when 0 then '女' else '男' end)
as '性别'
from student
用法2:
例如 有一张user表 含有两个字段user_id和 user_name
需求: 当user_name为null时 给user_name赋值李四
SELECT
CASE user_name
WHEN NULL THEN '李四'
ELSE user_name
END AS userName
FROM
USER;
3.WEEK(date[,mode]):该函数返回日期的星期数
模式 | 星期的第一天 | 范围 | 星期 1 是第一天 |
0 | Sunday | 0-53 | 一年中多一个星期天 |
1 | Monday | 0-53 | 一年多3天 |
2 | Sunday | 1-53 | 一年中多一个星期天 |
3 | Monday | 1-53 | 一年多3天 |
4 | Sunday | 0-53 | 一年多3天 |
5 | Monday | 0-53 | 一年中多一个星期一 |
6 | Sunday | 1-53 | 一年多3天 |
7 | Monday | 1-53 | 一年中多一个星期一 |