select sum(jin) from szdj where datepart("ww",riqi,2,3)=datepart("ww",now,2,3) and year(riqi)=year(now)
...全文
33725打赏收藏
如何进行跨年度的按周统计
比如说,今年的最后一周有2天,包含了明年的5天。 以下表为szdj,包括统计字段金额jin,日期型字段riqi。目的是按周统计金额,条件是查询周的值和年的值。把时间now调到1月2日,跨年度的时候周的值还是53,但年的值却变了,这样没法统计那周的值呀 select sum(jin) from szdj where datepart("ww",riqi,2,3)=datepart("ww",now,2,3) and year(riqi)=year(now)
//这个函数用于求出任意一天的星期一和星期日所对应的日期值
procedure GetWeekStartAndEnd(ADay:TDatetime;var StartDay,EndDay:TDateTime);
begin
StartDay:=ADay-DayOfTheWeek(ADay)+2;//得到星期一
EndDay:=ADay+(8-DayOfTheWeek(ADay));//得到星期日
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:TDateTime;
begin
GetWeekStartAndEnd(date,a,b);
showmessage('周一是:'+datetimetostr(a)+' 周日是:'+datetimetostr(b));
end;