加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL选择和分组一段时间(时间戳)

发布时间:2020-12-12 07:46:01 所属栏目:MsSql教程 来源:网络整理
导读:我想按一段时间(月,周,日,小时……)选择计数和组.因此,例如,我想选择行数并将它们分组24小时. 我的表创建如下.日期是时间戳. CREATE TABLE MSG( MSG_ID decimal(22) PRIMARY KEY NOT NULL,MSG_DATE timestamp,FILE_REF varchar2(32),FILE_NAME varchar2(64),M
我想按一段时间(月,周,日,小时……)选择计数和组.因此,例如,我想选择行数并将它们分组24小时.

我的表创建如下.日期是时间戳.

CREATE TABLE MSG
(
   MSG_ID decimal(22) PRIMARY KEY NOT NULL,MSG_DATE timestamp,FILE_REF varchar2(32),FILE_NAME varchar2(64),MSG_TYPE varchar2(2),);
CREATE UNIQUE INDEX PK_FEI_MSG ON MSG(MSG_ID);

我试过这个查询.长度取决于时间段.但是我怎么能从现在开始分组.

SELECT substr(MSG_DATE,1,length),COUNT(*) as total FROM MSG GROUP BY substr(MSG_DATE,length)

但是,如何将日期从time_period分组?

解决方法

您可以通过TO_CHAR功能进行分组.
select to_char(msg_date,'X'),count(*)
  from msg
 group 
    by to_char(msg_date,'X')

…其中X是格式规范:

> YYYY = 4位数年份
> MM =一年中的一个月
> DD =每月的日子
> WW =周
> HH24 =一天中的小时

你可以随意组合它们

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读