现在有一个sqlserver 问题,内容是这样的:
表wlmx(物流明细),其中有一个字段rq(日期),现在如何检索出每天的最早日期与最迟日期的明细帐;
如表中有这样的明细记录
rq pm
2002-08-07-08:23:23 xxx
2002-08-07-09:56:27 xxx
2002-08-07-15:54:24 xxx
2002-08-09-06:56:24 xxx
2002-08-09-07:51:24 xxx
2002-08-09-08:23:24 xxx
怎样得出如下的形式:
zzrq(每天最早日期) zcrq(每天最迟日期) pm
2002-08-07-08:23:23 2002-08-07-15:54:24 xxx
2002-08-09-06:56:24 2002-08-09-08:23:24 xxx
... ... ...
请问这样的sql语句如何写?
表wlmx(物流明细),其中有一个字段rq(日期),现在如何检索出每天的最早日期与最迟日期的明细帐;
如表中有这样的明细记录
rq pm
2002-08-07-08:23:23 xxx
2002-08-07-09:56:27 xxx
2002-08-07-15:54:24 xxx
2002-08-09-06:56:24 xxx
2002-08-09-07:51:24 xxx
2002-08-09-08:23:24 xxx
怎样得出如下的形式:
zzrq(每天最早日期) zcrq(每天最迟日期) pm
2002-08-07-08:23:23 2002-08-07-15:54:24 xxx
2002-08-09-06:56:24 2002-08-09-08:23:24 xxx
... ... ...
请问这样的sql语句如何写?
a:TDateTime ;
b:TDateTime;
begin
if a<b
then begin
end ;
end;
maxdate,mindate:Tdatetime;
begin
adoquery1.clear;
adoquery1.sql.clear;
adoquery1.sql.add('select max(rq) maxrq from wlmx;');
open;
maxdate:= adoquery1.fieldbyname(maxrq).asdatetime;
{...}
{最小的日期用的是min(rq)函数,我就不多写了}
group by rq
rq1:
日期2002-01-10 0:00:00
rq2:
2002-01-01 23:59:00
set @rq2=2002-01-10 23:59:00'
select * from tablename between @rq1 and @rq2
最后显示格式是
rq rq_zz(最早时间) rq_zc(最迟时间)
2002-08-07 2002-08-07-08:23:23 2002-08-07-15:54:24
2002-08-09 2002-08-09-06:56:24 2002-08-09-08:23:24
XXX XXX XXX
group by round(convert(float,rq),0,1)关于:round(convert(float,rq),0,1)
它首先家日期转换为实数,然后取掉小数部分,则剩下的只是日期而没时间了。
假设你需要查询出日期:
则:convert(datetime,round(convert(float,rq),0,1))
select min(rq),max(rq),pm from wlmx
group by rq
实践,实践,实践万岁!!!
select min(rq) zzrq, max(rq) zcrq ,pm from tablename group by pm;试试.