java的具体时间转为星期,以及在sql实现直接查询为星期

1.工具类的方式

工具类:

public static String dateToWeekUtil(String datetime) {
     
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
    String[] weekDays = {
      "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
    Calendar cal = Calendar.getInstance(); // 日历
    Date datet = null;
    try {
     
        datet = f.parse(datetime);
        cal.setTime(datet);
    } catch (ParseException e) {
     
        e.printStackTrace();
    }
    int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 一个星期中的某天。
    if (w < 0)
        w = 0;
    return weekDays[w];
}

java的具体时间转为星期,以及在sql实现直接查询为星期_第1张图片

SQL的方式

具体的sql语法:

select date_format('2018-06-26','%W');  #%W(大写W),查看出来的是日期所在的星期,英文的全写Tuesday


select date_format('2018-06-26','%a');  #%a返回的是日期所在的星期英文的简写,Tue,注意:Abbreviated=a,简短的
备注:其中的%a,%W都是格式字符串,date_format函数根据格式字符串将日期值进行格式化输出.

SELECT a.uuid AS id,a.line_num as 线路编号,site_name as 站点名称,bus_upper as 上车人数 ,bus_lower as 下车人数,is_manchu as 是否满员,date_format(date_type,’%W’) as 星期
FROM bus_route a
INNER JOIN bus_route_site b
ON a.uuid=b.line_id
INNER JOIN bus_arriveline c
ON a.uuid=c.line_id
INNER JOIN bus_operate d
ON a.uuid=d.line_id
java的具体时间转为星期,以及在sql实现直接查询为星期_第2张图片
在这里插入图片描述

你可能感兴趣的:(mysql)