❶ sql语句查询,怎么把不同年份和月份的数据,按年 月来分组。
将你的日期字段格式化为年月格式:DATE_FORMAT(date, '%Y-%m'),然后再用格式化的日期分组即可
❷ SQL中获取某一年中有多少个星期
with cte as
(
select dt=dateadd(d,number,'1916-01-01')
from master..spt_values
where type = 'P' and dateadd(d,number,'1916-01-01') <= '1916-12-31'
)
select top 1 weekNum=datepart(wk,dt) from cte group by datepart(wk,dt) order by datepart(wk,dt) desc
调试通过,自己换下时间段
❸ sqlserver语句,按周分组统计数据,请各位大神指教小弟。
---把getdate()替换成你的日期字段就可以了, between and的2个日期分别是你说的2个年头年尾的情况
select case when getdate()>=cast('2014/1/1' as datetime) then datepart(week,getdate()) else 1 end as 第几周
--from table_name
where getdate() between (case when datepart(weekday,cast('2014/1/1' as datetime))<>1 then
cast('2014/1/1' as datetime)-datepart(weekday,cast('2014/1/1' as datetime))+2
end )
and
(case when datepart(weekday,cast('2014/12/31' as datetime))<>6 then
cast('2014/12/31' as datetime)-datepart(weekday,cast('2014/12/31' as datetime))+1
end )
❹ sql server如何按季度分组统计所有的数据
和按月份组的原理是一样的吧!
按月分组
按季度分组和按月分组的区别应该就是时间段的区别吧!
selectcasewhenmonth(date)=1ormonth(date)=2
ormonth(date)=3then'一季度'
whenmonth(date)=4ormonth(date)=5
ormonth(date)=6then'2季度'
whenmonth(date)=7ormonth(date)=8
ormonth(date)=9then'3季度'
whenmonth(date)=10ormonth(date)=11
ormonth(date)=12then'4季度'
else''end,sum(数量)
fromtable
groupby
casewhenmonth(date)=1ormonth(date)=2
ormonth(date)=3then'一季度'
whenmonth(date)=4ormonth(date)=5
ormonth(date)=6then'2季度'
whenmonth(date)=7ormonth(date)=8
ormonth(date)=9then'3季度'
whenmonth(date)=10ormonth(date)=11
ormonth(date)=12then'4季度'
else''end
❺ sql怎么把一年中的每周数都显示出来
LZ给的红包实在少点。回头给补上呀!
----------------------------
这个题的难度不再怎么显示周,而是中国的文化问题,中国把周一当第一天,而中国用的大多数数据库都是国外的,国外基本都是把周日当第一天,所以按周统计或排序的基本都有误差,很多函数也用不了。
使用的是SqlServer数据库,别的数据库也会有以上问题,LZ自己多思考,方法如下:
(datepart(week, [CreateDate] + @@DateFirst - 1)-1) 才是真正的在中国能用的一年中的第几周。记住这是一年中的,不能跨年份,跨年份要用where 过滤年份。
第一:排序输出
SELECT [CreateDate], (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
order by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
第二:分组输出
SELECT MAX([CreateDate]), (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
group by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
❻ sql语句按照日期分组怎么写
1.如果你的时间格式是2012-01-13
17:35:52.217这样的形式,(主要是那个01不要是1),用下面这个
SELECT
convert(varchar(10),时间,23),SUM(
数字数据
)
FROM
表
group
by
convert(varchar(10),时间,23)
2.如果你的时间格式不是上面的格式,先转化成datetime:
SELECT
convert(varchar(10),cast(时间
as
datetime),23)
,SUM(数字数据)
FROM
表
group
by
convert(varchar(10),cast(时间
as
datetime),23)
3.如果报错,请追问~
❼ sql如何按周一、周二。。。周日 分组查询
使用日期的datepart函数。
select DATEPART(WEEKDAY,getdate())
❽ sql查询一年数据,以昨日8点到今日8点为今日数据,按日期排列,如何破
column_a>=时间A and column_a <= dateadd(day,时间A,1) order by column_a asc
❾ sql 实现按日期分组
需要用convert函数转换日期格式,并且需要用group by来实现分组。
1、创建测试表及插入数据:
createtabletest
(tdatedatetime,
salint);
insertintotestvalues('2015-09-2312:22:22',100);
insertintotestvalues('2015-09-2301:54:34',456);
insertintotestvalues('2015-09-2414:32:35',45);
insertintotestvalues('2015-09-2422:23:43',67);
insertintotestvalues('2015-09-2519:43:22',234);
insertintotestvalues('2015-09-2508:14:12',67);
insertintotestvalues('2015-09-2604:53:34',45);
insertintotestvalues('2015-09-2609:46:54',78);
2、执行sql语句:
selectconvert(varchar(10),tdate,120)tdate,sum(sal)salfromtestgroupbyconvert(varchar(10),tdate,120);
3、执行结果:
❿ sql按一年的每一周查询数据
取得指令时间的周数,再按该周数分组。
select
datepart(wk,指令时间),sum(数量)
from
表
group
by
datepart(wk,指令时间)
将该sql语句中文字的部分换成你的内容。