按日期(小时)的SQL组

kal*_*kal 16 sql oracle

我有一个带有"日期"列的表.我想按小时分组到特定日期.

Jef*_*emp 53

你也可以这样做:

SELECT TRUNC(datecol, 'HH24') FROM mytable
GROUP BY TRUNC(datecol, 'HH24');
Run Code Online (Sandbox Code Playgroud)

  • 另一个优点是`TRUNC`返回的数据类型是DATE,因此它总是正确排序 - 而`TO_CHAR`将使用字母排序,这取决于使用的日期/时间格式并不总是正确的. (5认同)
  • +1因为这比TO_CHAR更有效 (2认同)

ren*_*ene 28

Select TO_CHAR(date,'HH24')
from table
where date = TO_DATE('20110224', 'YYYYMMDD')
group by TO_CHAR(date,'HH24')
Run Code Online (Sandbox Code Playgroud)

  • TO_CHAR日期不会正确排序。考虑改用`TRUNC`。 (2认同)

Ric*_*iwi 5

select to_char(datecol,'HH24') thehour, count(*) count_in_hour
from tbl
where datecol = date '20110224'
group by to_char(datecol,'HH24')
order by thehour asc
Run Code Online (Sandbox Code Playgroud)