美文网首页
Mysql 中按日期统计数据

Mysql 中按日期统计数据

作者: 苏大发 | 来源:发表于2017-06-08 11:08 被阅读0次
    select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks;  
    select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days;  
    select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months;
    

    DATE_FORMAT(date,format)
    date 参数是合法的日期。format 规定日期/时间的输出格式。
    根据format字符串格式化date值。下列修饰符可以被用在format字符串中:
    %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), 这里星期一是星期的第一天
    %% 一个文字“%”。

    如果在数据库中,时间保存的是 int 类型的时间戳,那么需要将字符串转化为日期类型
    from_unixtime()是MySQL里的时间函数,能将mysql的时间戳类型转换成日期格式
    因此,如果数据库中时间报错的事 int 类型的时间戳,那么可以直接用下面的方式进行查询

    DATE_FORMAT(FROM_UNIXTIME(create_time,"%Y%m%d"),"%Y%u")
    

    完整的 sql 语句例如:

    select DATE_FORMAT(FROM_UNIXTIME(create_time,"%Y%m%d"),"%Y%u")  weeks,count(caseid) count from tc_case group by weeks;
    

    倘若仅仅是想要根据int 类型的时间戳来转化成时间,可以如下操作:

    SELECT * FROM `order` WHERE FROM_UNIXTIME(`create_time`,"%Y%m%d%H%i")='201706151639'
    

    相关文章

      网友评论

          本文标题:Mysql 中按日期统计数据

          本文链接:https://www.haomeiwen.com/subject/rurafxtx.html