Merhaba, sitemde iki tarih arasında içerik girilmemiş günleri bulup sadece o günlere içerik ekleyebilmek için bir MySQL sorgusu yazmaya çalışıyorum. T-SQL ile bunun üzerinde bir çalışma yaptım fakat MySQL yazım düzenine uyarlayamadım, bunun hakkında yardımcı olabilirseniz sevinirim.

Not: MySQL için tarih formatı dd.mm.yyyy hh:mm:ss şeklinde MS-SQL için SUBSTRING kullanmayı düşündüm fakat konu MySQL olduğu için yine sonuç alamadım, bunu yapabilirsem çok iyi olacak, yardımlarınız için şimdiden teşekkürler...

DECLARE @i INT
DECLARE @tablo TABLE
(
tarih DATE
)

DECLARE @bos_tarihler TABLE
(
bos_tarih DATE
)


DECLARE @j INT
SET @i = 1
SET @j = 1

/* --- BAŞLANGIÇ --- */
/*
Bu kodlarla tarihlerimizi oluşturuyoruz.
www.tportal.org
*/
WHILE @i<365
BEGIN
INSERT INTO @tablo(tarih) VALUES(DATEADD(DAY,@i,'01.01.2013'))
SET @i = @i+2
END
/* --- BİTİŞ --- */
/*
Bu kodlarla tarihlerimizi oluşturuyoruz.
www.tportal.org
*/

SELECT * FROM @tablo

/* ---BAŞLANGIÇ --- */
/*
Bu kodlarla yukarıda oluşturduğumuz tarihlerden
hangileri yoksa onların listelenmesini sağlıyoruz.
www.tportal.org
*/
WHILE @j<365
BEGIN
IF NOT EXISTS(SELECT tarih FROM @tablo WHERE tarih = DATEADD(DAY, @j-1,'01.01.2013'))
BEGIN
INSERT INTO @bos_tarihler(bos_tarih) VALUES(DATEADD(DAY, @j-1,'01.01.2013'))
END
SET @j = @j + 1
END
/* ---BİTİŞ --- */
/*
Bu kodlarla yukarıda oluşturduğumuz tarihlerden
hangileri yoksa onların listelenmesini sağlıyoruz.
www.tportal.org
*/

SELECT * FROM @bos_tarihler


Kaynak: http://www.tportal.org/t-sql-bir-tablodaki-olmayan-tarihleri-listeleme/