这些东西还是放在前台程序里完成吧.
非要交给SQL的话,
假设
tUser
uId uName uMail uRegTime
1   aa    [email protected] 2005-6-1
2   bb    [email protected] 2006-1-1
3   cc    [email protected] 2006-5-3当输入starttime='2006-3-1',endtime='2006-5-1'时
此时
SELECT uid,uname,umail,RTRIM(uregtime) FROM tUser WHERE DATEDIFF(dd,@starttime,uRegTime)>=0 AND DATEDIFF(dd,uRegTime,@endtime)>=0 
UNION ALL
SELECT uid,uname,'','' FROM tUser WHERE DATEDIFF(dd,@starttime,uRegTime)<0 OR 
DATEDIFF(dd,uRegTime,@endtime)<0 当然,也可以用CASE WHEN,不过字段过多的话,语句太长.我就不写了.
也可以用 CASE WHEN 得到一个新列,为1,或0,为1的表示在时间段内,为0的表示不在时间段内,然后套个子查询,再写出来. 这种方法仅是为了减少代码输写量,跟直接用CASE WHEN没什么两样.不知道我是否理解对了楼主的意思.