繁体   English   中英

在 Oracle 中按 TIMESTAMP`S 日期分组

[英]Group by TIMESTAMP`S Date in Oracle

到目前为止,我正在尝试在 oracle 中按时间戳的日期进行分组,我使用的是to_char 但我需要另一种方式。 我试过如下:

    SELECT d.summa,
           d.FILIAL_CODE,
           to_char(d.DATE_ACTION, 'YYYY-MM-DD')
    FROM table1 d
    WHERE d.action_id = 2
      AND d.date_action Between to_date('01.01.2020', 'dd.mm.yyyy') AND to_date('01.03.2020', 'dd.mm.yyyy')
    GROUP BY to_char(d.DATE_ACTION, 'YYYY-MM-DD')

表格1

-----------------------------------------------------
summa      |  filial_code    | date_action
--------------------------------------------------
100000.00  |  2100           | 2016-09-13 11:04:32
320000.12  |  3200           | 2016-09-12 21:04:58
400000.00  |  2100           | 2016-09-13 15:12:45
510000.12  |  3200           | 2016-09-15 09:30:58
------------------------------------------------------

我需要像下面

-------------------------------------------
summa      |  filial_code    | date_action
------------------------------------------
500000.00  |  2100           | 2016-09-13 
320000.12  |  3200           | 2016-09-12 
510000.12  |  3200           | 2016-09-15 
------------------------------------------

但我需要除了to_char函数。 我试过trunc但我做不到

使用TRUNC实际上应该将其转换为日期并删除时间部分,但您还需要处理其他列。 按它们分组或使用聚合函数:

SELECT SUM( d.summa ) AS summa,
       d.FILIAL_CODE,
       TRUNC(d.DATE_ACTION) AS date_action
FROM table1 d
WHERE d.action_id = 2
  AND d.date_action Between to_date('01.01.2020', 'dd.mm.yyyy')
                        AND to_date('01.03.2020', 'dd.mm.yyyy')
GROUP BY TRUNC(d.DATE_ACTION), d.FILIAL_CODE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM