sql语句知识点积累

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 一年中多一个星期一
发布了18 篇原创文章 · 获赞 1 · 访问量 7005

猜你喜欢

转载自blog.csdn.net/weixin_42188216/article/details/104069519