熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

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

2022-06-13   來源: SQL語言 

  問我想利用SQL找出在任意一月中的周日的數量請幫幫我

  答以下是一個簡單的技巧

  確定一個具體的月份確定這個月的第一天

  使用INTEGERS表生成一系列這個月第一天之後的日期覆蓋這個月所有的日期

  用日期函數確定這一生成日期是否就是周日

  用count()獲取周日的測試結果

  為了創建integers表用到下列命令

  createtableintegers    (iintegernotnullprimarykey); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values(); insertintointegers(i)values();

  現在我們假設你要測試的是月份所以你確定的日期就是然後用下面的查詢生成這個月所有的日期注意每個數據庫系統都會有不同的日期函數所以一定要知道怎麼使用你的數據庫系統這個例子就用到了MySQL語法

  set@day=’’;           selectdate_add(@day       interval*tensi+unitsiday)             asadate   fromintegersastens cross  joinintegersasunits wheredate_add(@day       interval*tensi+unitsiday)   <date_add(@day       intervalmonth) order   byadate 

  你會發現這裡有一個ORDER BY子句所以你可以充分相信該查詢正確生成了這個月所有的日期現在只需要將函數相加確定一個周六並且計算的日期現在只需要將函數相加確定一個周六並進行計算

  set@day=’’;                  selectcount(     casewhendayofweek(      date_add(@day       interval*tensi+unitsiday)              )=       thenelsenullend) assundays   fromintegersastens cross  joinintegersasunits wheredate_add(@day       interval*tensi+unitsiday)   <date_add(@day       intervalmonth)  Result: sundays   

  非常簡單不是嗎?


From:http://tw.wingwit.com/Article/program/SQL/201405/30844.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.