hongmeigui22027 发表于 2017-12-11 23:34:08

mysql的DATE

  mysql有个字段是DATETIME类型,要实现可以按月统计,该怎么写sql语句?
  select month(f1) from tt group by month(f1)
  or select DATE_FORMAT(f1,'%m') from tt group by DATE_FORMAT(f1,'%m')
  比如数据库的为2008-01-15 12:10:00
  则DATE_FORMAT的参数格式分别得到的结果为:
  '%Y' 2008
  '%Y-%m' 2008-01
  '%Y-%c' 2008-1
  '%m' 01
  '%c' 1
  Date_format格式说明:
  格式 描述
  %a 缩写星期名
  %b 缩写月名
  %c 月,数值
  %D 带有英文前缀的月中的天
  %d 月的天,数值(00-31)
  %e 月的天,数值(0-31)
  %f 微妙
  %H 小时(00-23)
  %h 小时(01-12)
  %I 小时(01-12)
  %i 分钟,数值(00-59)
  %j 年的天(001-366)
  %k 小时(0-23)
  %l 小时(1-12)
  %M 月名
  %m 月,数值(00-12)
  %p AM或PM
  %r 时间,12-小时(hh:mm:ss AM或PM)
  %S 秒(00-59)
  %s 秒(00-59)
  %T 时间, 24-小时(hh:mm:ss)
  %U 周(00-53)星期日是一周的第一天
  %u 周(00-53)星期一是一周的第一天
  %V 周(01-53)星期日是一周的第一天,与%X使用
  %v 周(01-53)星期一是一周的第一天,与%x使用
  %W 星期名
  %w 周的天(0=星期日, 6=星期六)
  %X 年,其中的星期日是周的第一天,4位,与%V使用
  %x 年,其中的星期一是周的第一天,4位,与%v使用
  %Y 年,4位
  %y 年,2位
  按季度存数据
  select YEAR(procurement_dt)*10+((MONTH(procurement_dt)-1) DIV 3) +1, MONTH(procurement_dt) , procurement_dt from xs001
  groupbyconcat(date_format(savetime,'%Y'),FLOOR((date_format(savetime,'%m')+2)/3))
  另外的按月统计方式
  MySQL-按月统计数据
  统计2010年 每月的资金select DATE_FORMAT(date,'%Y-%m') as month,sum(money) as money from finance where DATE_FORMAT(date,'%Y')=2010 group by
  month order by month 1如果周一为一周的第一天,则(小写) DATE_FORMAT(date,'%x %v') 2如果周日为一周的第一天,则(大写) DATE_FORMAT(date,'%X %V')
  统计每个星期select DATE_FORMAT(date,'%x年-第%v周') as week,sum(money) as money from finance_base where DATE_FORMAT(date,'%Y')=2010 group by
  week
  select ((year(`recview`.`paytime`) * 100) + month(`recview`.`paytime`)) AS `paytime`,sum(`recview`.`rent`) AS `rent` from `recview` group by
  ((year(`recview`.`paytime`) * 100) + month(`recview`.`paytime`)) order by ((year(`recview`.`paytime`) * 100) + month(`recview`.`paytime`));
页: [1]
查看完整版本: mysql的DATE