比如说,今年的最后一周有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)
调试欢乐多
然后,+7 就是两个时间范围了。
我见过,但是不会。帮你顶。
根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在
星期上的差数。如果差数不足一个星期,则忽略掉。●function WeekSpan(const ANow, AThen: TDateTime): Double;描述:
根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在
星期上的差数。如果差数不足一个星期,则WeekSpan函数不会忽略掉。
注意:此函数的返回类型为 Double
if
星期数>50和月份=1月
:year=year(now)-1
else
:year=year(now)
select sum(jin) from szdj where datepart("ww",riqi,2,3)=datepart("ww",now,2,3) and year(新字段)=:year不知道怎么样,或者还能有更好的方法,不用加字段的吗?delphi的week函数是什么
function DayOfWeek(Date: TDateTime): Integer;描述:
按照给定的TDateTime类型的参数Date,DayOfWeek 函数得到一周中的第几天,从1到7。
这里 星期日 是一周的第一天,而 星期六 是第七天
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;