SQL和ACCESS统计当天当周当月当季当年的数据
(2018-11-16 10:15:51)
标签:
sql和access统计当天当周当月当季当年的数据 |
分类: 代码天地 |
SQL 和 ACCESS统计当天当周当月当季当年的数据
一 函数DateDiff
使用的都是 DateDiff 函数,三个参数中,第1个是时间间隔,第2个是表的时间字段,第3个是获得时间的函数。
1 对于
ACCESS来说第1个参数要用 单引号括起来,第3个参数使用的是 date()
2 对于
SQL来说第1个参数 不用括起来,第3个参数使用的是 getdate()
比如当日的是: DateDiff(d, create_time,
getdate())=0
二 函数DATEPART,参看下面当季的样例
这两个函数,可以从网上搜索它们的使用方法。
三 完整的代码如下:
CString where_date(int database_type,int m_date_format,CString
m_date1,CString m_date2)
{
m_title.Format("从 %s 到 %s",m_date1,m_date2);
if(database_type==0)//=0 access =1 sql
{
where_str.Format(" create_time >= #%s 00:00:00# and
create_time <= #%s 23:59:59#",m_date1,m_date2);
}
else
{
where_str.Format(" create_time >= '%s 00:00:00' and
create_time <= '%s 23:59:59'",m_date1,m_date2);
}
break;
case 1://当天
m_title="当天";
if(database_type==0)//=0 access =1 sql
{
where_str= " DateDiff('d',create_time,date())=0 ";
}
else
{
where_str= " DateDiff(dd,create_time,getdate())=0 ";
}
break;
case 2: //当周,注意一周是从 周日-周五
m_title="当周";
if(database_type==0)//=0 access =1 sql
{
where_str=" DateDiff('ww',create_time,date())=0 ";
}
else
{
where_str=" DateDiff(week,create_time,getdate())=0 ";
}
break;
case 3://当月
m_title="当月";
if(database_type==0)//=0 access =1 sql
{
where_str=" DateDiff('m',[create_time],date())=0 ";
}
else
{
where_str=" DateDiff(month,[create_time],getdate())=0 ";
}
break;
case 4://当季
m_title="当季";
// where_str="DATEPART(qq, create_time) = DATEPART(qq,
GETDATE()) and DATEPART(yy, create_time) = DATEPART(yy,
GETDATE())";
if(database_type==0)//=0 access =1 sql
{
where_str=" DateDiff('q',create_time,date())=0 ";
}
else
{
where_str=" DateDiff(qq,create_time,getdate())=0 ";
}
break;
case 5://当年
m_title="当年";
if(database_type==0)//=0 access =1 sql
{
where_str=" DateDiff('yyyy',create_time,date())=0 ";
}
else
{
where_str=" DateDiff(year,create_time,getdate())=0 ";
}
break;
case 6://所有时间范围
m_title="所有时间范围";
where_str.Format(" 1 = 1 ");
break;
default: //全部
m_title="全部";
where_str=" 1=1 ";
break;
if (where_str=="") where_str=" 1 = 1 ";
return where_str;
}