我的数据库表中一天之内会产生多条记录,请问怎么样查询某个日期的最后一条记录?
比如我要查询2011-10-25号的最后一条记录怎么写SQL语句,当然最后一条记录是哪个时间点产生的是未知的。
要是把记录全查出来再搞个循环把指针移到最后一条记录处就太麻烦了。请帮帮忙
然后把某个月中每天的最后一条记录查询出来怎么实现
写了这么多,谢谢,这样是可以实现的,能不能把某个月的每天的最后一条记录查出来,比如2011年9月份每天的最后一条记录,帮忙想一下,麻烦了
追答采用循环吧:
Declare @YM varchar(7)--年月
Declare @First datetime --这个月的第一天
Declare @Last datetime --这个月的最后一天
Set @YM='2011-09'--查询的年月(查询其它年月,修改这个@YM即可)
Set @First=Convert(datetime,@YM+'-01')
Set @Last=(Select dateadd(month,1,@First)-1)
Select Top 0 date Into #Tmp From TT--建一个临时表
---开始查询每天的最后一个时间
While @First<=@Last
Begin
Insert Into #Tmp
Select Max(Date) From TT Where Convert(varchar,Date,23)=Convert(varchar,@First,23)
Set @First=@First+1
End
Select * From TT Where Date In(Select date From #Tmp)
Drop Table #Tmp
把TT换成你的表,把date换成你的时间字段,
谢谢,这样可以实现。还有一个问题,可能会难一点,指定某个月,把这个月中每天的最后一条记录查询出来能实现吗?
order by 然后 top?
追答是的,可以吗
追问恩,是可以的。谢谢,还有一个问题,可能会难一点,指定某个月,把这个月中每天的最后一条记录查询出来能实现吗?
追答这个有点困难 呵呵呵