zoukankan      html  css  js  c++  java
  • group by按照日期分组

    一、group by分组函数大家很熟悉,就是按照某一列进行分组排序。但是很多时候分组排序的时候,我们需要按照日或者月或者年来分组当前的数据。但是数据表中时间的字段是精确到分钟的,这种要怎么处理呢?

    1. 其实很简单,只要找到当前表中的日期列,并且其转换成需要排序的年月格式便可,并且取出对应的字符长度。

    2. 如下,我需要将金额数据按照月度汇总,那么我需要做的就是把当前日期先转换成年月格式的日期,然后按照分组。

    3. 需要注意的是,需要将group后的日期字段和查询列的字段都转换为年月格式的字符。如 2019-05 。

    select sum(c.fOCryAmtWiTax) 本月接单金额,CONVERT(varchar(7),a.fappdate,120) 月份
     From  t_COPD_OrdMst a with(nolock)  
    Left Join  t_CRMM_CstMst b with(nolock)         on a.fCCode = b.fCCode   --fZoneCode N代表内贸   Y代表外贸
    Left Join  t_COPD_OrdItem c with(nolock)        on a.fOrdNo = c.fOrdNo    --fOCryAmtWiTax  折后含税金额,替换a.fordallamt+a.fselallamt
    left Join  t_BOMM_GoodsMst d with(nolock)       on c.fGoodsID = d.fGoodsID
    Left Join  t_CRMM_Zone e with(nolock)           on B.fZoneCode=e.fZoneCode
    Left Join  t_COPM_GoodsSortMst f with(nolock)   on d.fSortCode=f.fSortCode
    left join t_CRMM_CrmSortMst g                   on g.fCustSortCode=b.fCustSortCode
    where a.fappdate>'2018-12-31'
    group by CONVERT(varchar(7),a.fappdate,120)
    order by CONVERT(varchar(7),a.fappdate,120)

    4. 常用的日期格式有以下:

    select CONVERT(varchar(12) , getdate(), 101 )
    05/19/2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 102 )
    2019.05.19
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 103 )
    19/05/2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 104 )
    19.05.2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 105 )
    19-05-2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 106 )
    19 05 2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 107 )
    05 19, 2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 108 )
    09:15:33
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 109 )
    05 19 2019  
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 110 )
    05-19-2019
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 111 )
    2019/05/19
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 112 )
    20190519
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 113 )
    19 05 2019 0
    ---------------------------------------------
    select CONVERT(varchar(12) , getdate(), 114 )
    09:16:06:747
    ---------------------------------------------

     5. 如果需要去日期中相关的值,有以下方法

    YEAR('2018-05-17 00:00:00') --年
    MONTH('2018-05-15 00:00:00') --月
    DAY('2008-05-15 00:00:00') --日
    DATEPART ( datepart , date )
    DATEPART(MM,'2018-05-15 00:00:00')
    年份 yy、yyyy
    季度 qq、q
    月份 mm、m
    每年的某一日 dy、y
    日期 dd、d
    星期 wk、ww
    工作日 dw
    小时 hh
    分钟 mi、n
    秒 ss、s
    毫秒 ms

    谢谢观看!!!

  • 相关阅读:
    "《算法导论》之‘图’":不带权二分图最大匹配(匈牙利算法)
    "C#":MySql批量数量导入
    MySql常用操作语句(2:数据库、表管理以及数据操作)
    MySql常用操作语句(1:启动、连接数据库及用户操作)
    HTML 段落
    HTML 标题
    HTML 属性
    HTML 元素
    HTML 基础
    HTML 编辑器
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10888114.html
Copyright © 2011-2022 走看看