Вы пошли по этому поводу неправильно:
day = DATE(KeyPartitionDate)
тогда вы сделали
dayplusone = DATE_ADD(date(KeyPartitionDate), INTERVAL 1 DAY)
, что в основном говорит, что dayplusone = день + (1 день)
Затем вы делаете:
WHERE DATE_DIFF(day, dayplusone , DAY) > 1
, что похоже на высказывание: dayplusone - день> (1 день), что будет означать
day + (1 day) - day > (1 day)
Вы можете ясно видеть, почему это неправильно.
Вместо этого вам нужно сравнить текущую дату строки с предыдущей датой строки. Это достигается с помощью оконных функций:
SELECT KeyPartitionDate FROM (
SELECT DISTINCT KeyPartitionDate,
LAG(KeyPartitionDate)
OVER (ORDER BY KeyPartitionDate ASC) AS PreviousKeyPartitionDate
FROM `project.dataset.table`)
WHERE DATE_DIFF(DATE(PreviousKeyPartitionDate),DATE(KeyPartitionDate), DAY ) > 1
ORDER BY KeyPartitionDate