sql 查询日期分段问题

[复制链接]
查看11 | 回复1 | 2010-1-19 14:27:41 | 显示全部楼层 |阅读模式
--测试用临时表--sql server 语言create table #test_0120(a datetime,b int)declare @num intset @num = 300while @num >0 begininsert into #test_0120selectdateadd(d,-@num,'2009/06/10'), @numset @num =@num -1end--把范围内的第一天和最后1天算出declare @Sdatedatetimedeclare @days
intdeclare @max
intset @Sdate = '2009/01/01' --开始日set @days = 20--天数20天就是203周就是21 月的时候几个月就是几selectdatediff(d,@Sdate,A)/@days + 1asA,----日期列 月的时候 把d 换成 m sum(B) as B --合计列from #test_0120where A between '2009/01/01' and '2009/05/31' --时间范围确定group bydatediff(d,@Sdate,A)/@days + 1 ----日期列 月的时候 把d 换成 m不知道能不能帮到你呢。
回复

使用道具 举报

千问 | 2010-1-19 14:27:41 | 显示全部楼层
这个我做过个统计模块,可以实现,贴其中1个时间段SQL整理函数你理解下,不理解可以hi我function global_sql($type, $date, $from, $to, $vol){if($type==0){ if ($date==0){
$sql = "DATE(".$vol.")=DATE(now())"; }else if ($date==1){
$sql = "DATE(".$vol.")=DATE_SUB(now(),Interval 1 DAY)"; }else if ($date==2){
$from = date("Y-m-",time()).$from;
$to = date("Y-m-",time()).$to;
$sql = "DATE(".$vol.")>='".$from."' and DATE(".$vol.")='".$from."' and DATE(".$vol.")='".$from."' and DATE_FORMAT(".$vol.",'%Y%u')=".$from." and DATE_FORMAT(".$vol.",'%Y%c')=".$from." and DATE_FORMAT(".$vol.",'%Y%c')=".$from." and quarter(".$vol.")=".$from." and YEAR(".$vol.")<=".$to; }}return $sql; }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行