首頁 > 資料庫 > mysql教程 > 如何填入 SQL 查詢結果中缺少的日期?

如何填入 SQL 查詢結果中缺少的日期?

Patricia Arquette
發布: 2024-12-23 14:34:20
原創
716 人瀏覽過

How to Fill Missing Dates in SQL Query Results?

在 SQL 結果中填入缺少的日期

在資料庫中查詢日期範圍時,通常會遇到資料空白。為了解決這個問題,有幾種簡單的方法可以用空日期和相應的計數填充結果。

在 MySQL 端

一個選項是建立一個預存程序產生一個臨時表,其中包含指定範圍內的所有可能日期。然後可以將該表與查詢結果連接起來以填入缺少的日期。

CREATE PROCEDURE sp1(d1 DATE, d2 DATE)
DECLARE d DATETIME;

CREATE TEMPORARY TABLE foo (d DATE NOT NULL);

SET d = d1
WHILE d <= d2 DO
  INSERT INTO foo (d) VALUES (d)
  SET d = DATE_ADD(d, INTERVAL 1 DAY)
END WHILE

SELECT foo.d, COUNT(date)
FROM foo LEFT JOIN table ON foo.d = table.date
GROUP BY foo.d ORDER BY foo.d ASC;

DROP TEMPORARY TABLE foo;
登入後複製

在 Perl 端

如果 Perl 模組如 Date:: y 可用,您可以迭代日期範圍並檢查查詢結果中的空日期。如果找到,請為該日期新增零計數條目。

use Date::y;

# Get the date range
my $d1 = '2008-08-05';
my $d2 = '2008-08-07';

# Iterate over the date range
my $date = Date::y->date($d1);
while ($date <= Date::y->date($d2)) {
  # Check if the date exists in the query results
  if (! exists $results{$date}) {
    # Add the date with a zero count
    $results{$date} = 0;
  }
  $date = $date->next;
}
登入後複製

以上是如何填入 SQL 查詢結果中缺少的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板