首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL如何做1小时间隔

SQL如何做1小时间隔
EN

Stack Overflow用户
提问于 2013-11-07 22:06:54
回答 3查看 4.5K关注 0票数 1

我有一个按指定日期返回记录的sql查询,我想做的是按1小时间隔对它们进行分组,我的查询返回一个日期和间隔。间隔值类似于8:00,8:30,9:00,9:30,10:00,因为您可以看到间隔产生了5个值我想要做的是按照8:00-9:00,9:00-10:00对它们进行分组

我设计了一个查询:

代码语言:javascript
复制
SELECT DATEPART(HOUR,VC.DATE+ VC.INTERVAL) AS DATE
      ,DATEPART(HOUR,VC.INTERVAL) AS INTERVAL 
      FROM VMUK_Q1R_IB_CONSOLIDATED VC

但问题是,它显示为8,8,9,9,10,我该如何实现呢?

EN

回答 3

Stack Overflow用户

发布于 2013-11-08 03:33:28

您需要的是创建一组每小时值,并根据值的小时部分重新加入该值。这将确保表示缺少的“bucket”。下面的CTE将为您提供24小时的查找-您也可以使用静态查找表做同样的事情。

代码语言:javascript
复制
with ranges 
as 
(
select 0 as value
union all 
select r.value+ 1 from ranges r where r.value <= 24
)
select 
r.value start
from ranges r
票数 1
EN

Stack Overflow用户

发布于 2013-11-07 22:22:21

您可以通过计算或格式化来修复此问题。我认为在这个例子中格式化会更简单。试试这个:

代码语言:javascript
复制
SELECT Convert(VarChar(20), DATEPART(HOUR,VC.INTERVAL)) + ':00' AS DATE
     ,DATEPART(HOUR,VC.INTERVAL) AS INTERVAL 
FROM VMUK_Q1R_IB_CONSOLIDATED VC

如果你想要显示完整的日期+时间,向下舍入,试试这个:

代码语言:javascript
复制
SELECT Convert(VarChar(20), VC.Date, 101) + Convert(VarChar(20), DATEPART(HOUR,VC.INTERVAL)) + ':00' AS DATE
     ,DATEPART(HOUR,VC.INTERVAL) AS INTERVAL 
FROM VMUK_Q1R_IB_CONSOLIDATED VC

如果你也想要时间范围,试试这个:

代码语言:javascript
复制
SELECT Convert(VarChar(20), VC.Date, 101) + Convert(VarChar(20), DATEPART(HOUR,VC.INTERVAL)) + ':00' AS DATE,
     ,DatePart(HOUR,VC.INTERVAL)) + ':00 - ' + DatePart(HOUR, DateAdd(HOUR, VC.INTERVAL, 1)) + ':00' AS TimeRange
     ,DATEPART(HOUR,VC.INTERVAL) AS INTERVAL 
FROM VMUK_Q1R_IB_CONSOLIDATED VC
票数 0
EN

Stack Overflow用户

发布于 2013-11-08 10:35:15

代码语言:javascript
复制
SELECT
    DATEPART(HOUR,VC.DATE+ VC.INTERVAL) AS DATE,
    case DATEPART(HOUR,VC.INTERVAL)
        when 0 then '00:00-00:59'
        when 1 then '01:00-01:59'
        .
        .
        etc.
        .
        .
        when 22 then '22:00-22:59'
        when 23 then '23:00-23:59'
    end AS INTERVAL 
FROM VMUK_Q1R_IB_CONSOLIDATED VC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19837984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档