產生兩個日期之間的日期列表
MySQL 提供標準函數來檢索指定日期範圍內的日期清單。步驟如下:
1. 建立預存程序:
建立一個預存程序來產生所需的日期區間。 make_intervals
預存程序可以建立不同類型的區間,包括天、分鐘和秒。
2. 過程代碼:
<code class="language-sql">CREATE PROCEDURE make_intervals( startdate timestamp, enddate timestamp, intval integer, unitval varchar(10) ) BEGIN -- ... (存储过程代码,请参考答案中的完整代码) END;</code>
3. 範例區間產生:
要產生 2009-01-01 到 2009-01-10 之間的日期列表,請執行以下命令:
<code class="language-sql">call make_intervals('2009-01-01 00:00:00', '2009-01-10 00:00:00', 1, 'DAY');</code>
4. 與您的資料連結:
將產生的日期區間(位於 time_intervals
臨時表中)與您的資料表連接,即可根據需要聚合資料。
範例資料場景:
類似地,您可以為 SQL Server 建立一個函數。此函數產生與問題中提到的類似結果:
<code class="language-sql">CREATE FUNCTION GetDateList(@StartDate DATETIME, @EndDate DATETIME, @Interval INT, @Unit VARCHAR(10)) RETURNS TABLE AS BEGIN DECLARE @ThisDate DATETIME = @StartDate; WHILE @ThisDate <= @EndDate -- ... (函数代码,请参考答案中的完整代码) END;</code>
以上是如何在 MySQL 和 SQL Server 中產生兩個日期之間的日期清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!