【问题标题】:I have date time and I want to count but only by date in Oracle, now I have dates but several times我有日期时间,我想计算,但只能在 Oracle 中按日期,现在我有日期,但有好几次
【发布时间】:2018-01-31 06:30:13
【问题描述】:

我有日期时间字段,我们称之为 timestamp_1,我想显示每个日期有多少行。所以我需要有即

date         count
2017-11-20   4 
2017-12-01   10
2017-12-10   15

使用这样的sql

select cast(timestamp_1 as date), count(*)
from table
group by cast(timestamp_1 as date)
order by cast(timestamp_1 as date) desc

我明白了

date         count
    2017-11-20   1 
    2017-11-20   1
    2017-11-20   2
    2017-12-01   6
    2017-12-01   4
    2017-12-10   3
    2017-12-10   6
    2017-12-10   6

我做错了什么?

【问题讨论】:

    标签: oracle date datetime casting


    【解决方案1】:

    我猜你想计算每天的行数?那么你可以使用

    TRUNC ( date [, format ] ) in group by IE TRUNC(timestamp_1 , 'DD')

    【讨论】:

    • 我改为选择 TRUNC(timestamp_1 , 'DD'), count(*) from table group by TRUNC(timestamp_1 , 'DD') order by TRUNC(timestamp_1 , 'DD') desc 和它作品。非常感谢!
    【解决方案2】:

    我想最简单的选择是这样的:

    select trunc(timestamp_1), count(*)
    from table
    group by trunc(timestamp_1)
    order by 1;
    

    【讨论】:

      【解决方案3】:

      使用 to_char 作为日期列

      Select to_char(date_column,'DD-MON-YYYY') from some_table
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-06
        • 2018-05-09
        • 1970-01-01
        • 2018-08-28
        • 2014-06-21
        • 2019-04-02
        • 2012-09-06
        • 2021-03-22
        相关资源
        最近更新 更多