SQL查询日期查询

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:39:02
SQL如何动态横向显示一个月的日期啊?
比如 2009-3-1 2009-3-2 ....2009-3-31

declare @sql varchar(8000);
declare @date datetime;
declare @firstdate datetime;
set @date='2009-3-4' /*指定任意日期*/
set @firstdate=convert(char(4),year(@date))+'-'
+convert(char(2),month(@date))+'-01'; /*获取当月第一天*/
set @sql='select ';
while month(@firstdate)<month(@date)+1
begin
/*构造动态SQL语句*/
set @sql=@sql+''''+convert(varchar(10),@firstdate,120)+''',';
set @firstdate=dateadd(dd,1,@firstdate);
end
set @sql=left(@sql,len(@sql)-1); /*去掉最后一个逗号*/

exec (@sql)

最简单的方法:

建立一个1900-01-01 到2100-12-31年的表;

然后

select * from 表 where rq>start and rq < end

先获得月初月末的时间,在进行循环的吧,其他的我也没有什么好的方法