sqlserver获取某个时间范围内,每天某个小时的数据

sqlserver获取某个时间范围内,每天某个小时的数据

Ezra
2023-03-17 / 0 评论 / 93 阅读 / 正在检测是否收录...

如题,想获取到某个时间范围内,每天某个小时的数据需要用到datepart函数

SELECT  SUM ( total6_v ) AS total6_v,SUM ( total7_v ) AS total7_v,SUM ( tx_v ) AS tx_v,EQID
            ,CONVERT( VARCHAR ( 100 ), DATEADD( hh,- 1, eqtime ), 23 ) as eqtime
             FROM (select * from value_meter_instant_202103) i WHERE  [EQTime] BETWEEN '2021-03-09 00:00:01' AND '2021-03-12 00:00:00'  
                         AND datepart(hh,EQTime) >= 3
                         AND datepart(hh,EQTime) <= 23
                         GROUP BY CONVERT( VARCHAR ( 100 ), DATEADD( hh,- 1, eqtime ), 23 )
            ,EQID
/* datepart()函数的使用                          
 * datepart()函数可以方便的取到时期中的各个部分
 *如日期:2006-07--02 18:15:36.513
 * yy:取年           2006
 * mm:取月           7
 * dd:取月中的天     2
 * dy:取年中的天     183
 * wk:取年中的周     27
 * dw:取周中的天     1
 * qq:取年中的季度   3
 * hh:取小时        18
 * mi:取分钟        15
 * ss:取秒          36
 * 以下简单的语句可以演示所取到的结果
 */
  select getdate()
select datepart(mm,getdate())
select datepart(yy,getDate())
select datepart(dd,getdate())
select datepart(dy,getdate())
select datepart(wk,getdate())
select datepart(dw,getdate())
select datepart(qq,getdate())
select datepart(hh,getdate())
select datepart(mi,getdate())
select datepart(ss,getdate())

select datediff(dd,getdate(),'12/25/2006')    --计算从今天到12/25/2006还有多少天
select datediff(mm,getdate(),'12/25/2006')  --计算从今天到12/25/2006还有多少个月
select datename(mm,getdate())                  --以字符串而不是数字的形式得到今天的月份(07)
 
select dateadd(dd,30,getdate())                --在目前的日期日期上加30天
select dateadd(mm,3,getdate())                --在目前的日期日期上加3个月
select dateadd(yy,1,getdate())                 --在目前的日期日期上加1年
0

评论 (0)

取消