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/