gpt4 book ai didi

sql - 使用 SQL 查找缺失的日期

转载 作者:行者123 更新时间:2023-12-04 20:56:11 25 4
gpt4 key购买 nike

我在两年内的表格中有一些日期作为示例日期

01-jan-2012
02-jan-2012
04-jan-2012
05-jan-2012
06-jan-2012
07-jan-2012
09-jan-2012
11-jan-2012
.
.
.
01-DEC-2012

我想您已经注意到 03-jan-201208-jan-2012 的日期缺失,并且所有日期的标准相同。我的问题是那有什么办法可以在 oracle 中找到丢失的日期。请帮助!

最佳答案

这将使您在一年内失去所有天数 (SQL Fiddle)。

all_dates 生成 2012 年所有日期的列表(根据需要进行调整),LEFT JOIN 检查 IS NULL 会消除这些日期存在于您的源表中。

WITH all_dates AS (
SELECT TO_DATE('01-jan-2012') + ROWNUM - 1 AS d
FROM dual
CONNECT BY ROWNUM <= ADD_MONTHS(TO_DATE('01-jan-2012'), 12 ) - TO_DATE('01-jan-2012')
)
SELECT all_dates.d
FROM all_dates
LEFT JOIN t ON ( t.d = all_dates.d )
WHERE t.d IS NULL
ORDER BY all_dates.d
;

确保使用绑定(bind)变量而不是对日期进行三次硬编码。

关于sql - 使用 SQL 查找缺失的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13989561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com