加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SQL和ACCESS统计当天当周当月当季当年的数据

(2018-11-16 10:15:51)
标签:

sql和access

统计当天当周当月

当季当年的数据

分类: 代码天地
SQL 和 ACCESS统计当天当周当月当季当年的数据 

一  函数DateDiff 

使用的都是 DateDiff 函数,三个参数中,第1个是时间间隔,第2个是表的时间字段,第3个是获得时间的函数。

对于 ACCESS来说第1个参数要用 单引号括起来,第3个参数使用的是 date()
 比如当日的是:  DateDiff('d',create_time,date())=0

对于 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)
{
   // int database_type=0;//=0 access =1 sql
   // int m_date_format=0;//

    CString m_title="",where_str="";
    //m_date1="2018-10-01",m_date2="2018-11-11";

    switch (m_date_format)
    {
    case 0://时间范围
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;
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有