利用SQL找出一个月中有多少个周日_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

利用SQL找出一个月中有多少个周日

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:多少周日找出利用
黑客防线网安网讯:  问:我想利用SQL找出在任意一月中的周日的数量。请帮帮我。   答:以下是一个简单的技巧:  确定一个具体的月份,确定这个月的第一天  使用INTEGERS表生成一系列这个月第一天之后...

  问:我想利用SQL找出在任意一月中的周日的数量请帮帮我

  答:以下是一个简单的技巧:

  确定一个具体的月份确定这个月的第一天

  使用INTEGERS表生成一系列这个月第一天之后的日期覆盖这个月所有的日期

  用日期函数确定这一生成日期是否就是周日

  用count()获取周日的测试结果

  为了创建integers表用到下列命令:

createtableintegers 
  (iintegernotnullprimarykey);
insertintointegers(i)values(0);
insertintointegers(i)values(1);
insertintointegers(i)values(2);
insertintointegers(i)values(3);
insertintointegers(i)values(4);
insertintointegers(i)values(5);
insertintointegers(i)values(6);
insertintointegers(i)values(7);
insertintointegers(i)values(8);
insertintointegers(i)values(9);

  现在我们假设你要测试的是2006年9月份,所以你确定的日期就是2006-09-01,然后用下面的查询生成这个月所有的日期。注意:每个数据库系统都会有不同的日期函数,所以一定要知道怎么使用你的数据库系统。这个例子就用到了MySQL语法。

set@day1=’2006-09-01’; 
        
selectdate_add(@day1 
     ,interval10*tens.i+units.iday) 
           asadate 
 fromintegersastens
cross
 joinintegersasunits
wheredate_add(@day1 
     ,interval10*tens.i+units.iday)
  <date_add(@day1 
     ,interval1month)
order
  byadate 

  你会发现这里有一个ORDER BY子句,所以你可以充分相信该查询正确生成了这个月所有的日期。现在只需要将函数相加确定一个周六,并且计算的日期。现在只需要将函数相加确定一个周六,并进行计算:

set@day1=’2006-09-01’;     
           
selectcount(
    casewhendayofweek(
     date_add(@day1 
     ,interval10*tens.i+units.iday)
             )=1
      then1elsenullend) assundays 
 fromintegersastens
cross
 joinintegersasunits
wheredate_add(@day1 
     ,interval10*tens.i+units.iday)
  <date_add(@day1 
     ,interval1month) 
Result:
sundays
  4

  非常简单,不是吗?

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9660-1.html
网站维护教程更新时间:2012-03-21 02:23:21  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer