作者:刘俊国日期:2010-04-14
SQL取表中从最新创建时间起一周内的所有数据:
如表:TableName (RID int,InsertTime datetime)
从TableName 表中取出从最新一条数据开始,一周内的所有数据。
MSSQL写法如下:
--获取符合条件的数据declare @lastInsertTime datetime;
select top 1 @lastInsertTime from TableName
order by InsertTime desc;
select RID,InsertTime from TableName where datediff
(week,datetime,@lastInsertTime)=0;
--返回符合条件的数据集合,以存储过程的方式实现,以便调用给前台直接得到数据集合。
create procedure SP_GetWeekData(@where nvarchar(1000))
as
declare @tempSQL varchar(4000);
--组装SQL语句,获取TableName 表中取出从最新一条数据开始,一周内的所有数据。
set @tempSQL='declare @lastInsertTime datetime;'
+ 'select top 1 @lastInsertTime from TableName '
+ @where
+ 'order by InsertTime desc; '
+ 'select RID,InsertTime from TableName where '
+ @where
+ ' and datediff(week,datetime,@lastInsertTime)=0; '
EXECUTE sp_executesql @tempSQL ;