sqlserver查询本年各月、本月各天、本天各小时

这个表里有存的环保指标数据,做一个图表,包含本年各月、本月各天、本天各小时的三种污染物排放量的变化趋势图,以及当前时间各污染物的排放情况.请问查询语句应该怎么写

用户y8999187 发布于 2020-8-25 14:32
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
2
IceBall09Lv6中级互助
发布于2020-8-25 14:50(编辑于 2020-8-25 16:11)
SELECT substring(times,1,7) YEARMONTH, SUM(NUM) NUMYEARMONTH FROM TABLE1 
WHERE substring(times,1,4) = substring(CONVERT(varchar(100), GETDATE(), 120),1,4) 
GROUP BY substring(times,1,7)

本月各天:

SELECT substring(times,1,10) MONTHDAY, SUM(NUM) NUMONTHDAY FROM TABLE1 
WHERE substring(times,6,2) = substring(CONVERT(varchar(100), GETDATE(), 120),6,2)
GROUP BY substring(times,1,10)


最佳回答
1
snrtuemcLv8专家互助
发布于2020-8-25 14:37
最佳回答
0
指间沙Lv6中级互助
发布于2020-8-25 15:10

首先查询条件面板加一个年份的条件,然后数据集里面分别对时间字段自行处理,用函数获取年份,月份,天数,然后group by以上三个,最后where 年份等于查询条件的值。

  • 用户y8999187 用户y8999187(提问者) 谢谢。。可是我不会写。。
    2020-08-25 15:18 
  • 指间沙 指间沙 回复 用户y8999187(提问者) SELECT GETDATE(),year(GETDATE()) as 年,month(GETDATE()) as 月,day(GETDATE()) as 日,DateName(hour,GetDate()) as \'时\'
    2020-08-25 15:30 
最佳回答
0
axingLv6专家互助
发布于2020-8-25 16:51

本年每月

select convert(varchar(7),times,23) as 年月,sum(num) as 排放量 
from 表名
where DateDiff(year, GetDate(), times ) = 0
group by convert(varchar(7),times,23)


本月每日

select day(times) as 天,sum(num) as 排放量 
from 表名
where DateDiff(month, GetDate(), times ) = 0
group by day(times)


本天每小时

select datename(hour,times) as 天,sum(num) as 排放量 
from 表名
where DateDiff(dd, GetDate(), times ) = 0
group by datename(hour,times)

把你自己的表名替换进去

  • 5关注人数
  • 886浏览人数
  • 最后回答于:2020-8-25 16:51
    请选择关闭问题的原因
    确定 取消
    返回顶部