如何最快取出数据库表中本季度的记录?
数据库包含日期字段 问题点数:50、回复次数:1Top
1 楼Yang_(扬帆破浪)回复于 2002-05-17 14:51:56 得分 50
一般用法:
select * from tablename
where datepart(quarter,dtfield)=datepart(quarter,getdate())
如果要最快,估计要对dtfield建索引,而且这样查询:
declare @Part int
declare @Year int
declare @begindate datetime
declare @enddate datetime
select @Part=datepart(quarter,getdate()),@Year=datepart(Year,getdate())
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-1-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-4-1')
end
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-4-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-7-1')
end
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-7-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-10-1')
end
if @Part=4
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-10-1'),@Enddate=convert(datetime,convert(varchar(4),@Year+1)+'-1-1')
end
select * from tablename
where dtfield>=@BeginDate
and dtfield<@EndDate
Top




