簡體   English   中英

如何完成sql查詢以顯示整個月?

[英]How to complete sql query to display whole month?

我有一個看似簡單的問題,但我自己未能解決

我有這個mysql表與網站訪問者的統計信息

+-----------------------------+
+ date        | visits        +
+-----------------------------+
+  2014-03-01 | 198           +
+  2014-03-02 | 259           +
+  2014-03-03 | 94            +                 
+-----------------------------+

我有這個查詢

SELECT * FROM statistics WHERE date >= '2014-03-01' and date <= '2014-03-30';

我的問題是我是否可以使用一個sql查詢完成整個月,以便獲得以下輸出:

+-----------------------------+
+ date        | visits        +
+-----------------------------+
+  2014-03-01 | 198           +
+  2014-03-02 | 259           +
+  2014-03-03 | 94            +                 
+  2014-03-04 | 0             +                 
+  2014-03-05 | 0             +                 
+  2014-03-06 | 0             +
...             
+  2014-03-30 | 0             +                 
+-----------------------------+

提前非常感謝您。

一個SQL查詢是什么意思? 在這里,您還使用一個查詢。

“選擇*從統計信息中,日期> ='2014-03-01'和日期<='2014-03-30'”

我認為您可以使用Between子句。 你可以這樣寫

“選擇*從統計數據中'2014-03-01'和'2014-03-30'之間的日期”。

兩件事情。

SQL無法(輕松)創建沒有數據的行。 這意味着如果2014-03-05沒有行,那么您將不會獲得任何行,更不用說計數為0的行了。“創建”這種空行的唯一真實方法是讓另一個表包含一個您LEFT JOIN的日期列表。 但這真是太難了。

其次,您可以通過以下操作輕松獲取整個月的價值:

WHERE date BETWEEN '2014-03-01' AND DATE_ADD('2014-03-01', INTERVAL 1 MONTH)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM