data w varchar

0

Witam, mam taki problem. W viewsie, w polu data dane są przechowywane jako varchar i format daty jest następujący YYYYMM.
Jak wyciągnąć z tego rekordy dotyczące ostatnich trzech miesięcy.
Normalnie zrobiłbym to tak: DATEDIFF(MONTH, data, GETDATE()) <= 3. Jednak ponieważ typ danych jest jaki jest nie bardzo mogę sobie z tym poradzić.

Bazka stoi na MSSQL 2012.

Byłbym wdzięczny za pomoc.
Pozdrawiam

0

data > '201506' a datę sobie oblicz

0

Poniżej przykład:

DECLARE @String VARCHAR(10);
DECLARE @DateValue DATE;
SET @String = '201506'; 
SET @STRING = SUBSTRING(@String,1,4)+'/'+
     SUBSTRING(@String,5,2)+'/'+ case when LEN(SUBSTRING(@String,7,2)) = 0 then '01' else SUBSTRING(@String,7,2) end;
SET @DateValue = CONVERT(Date, @String);
select @DateValue
0

Dziękuje za odpowiedzi.
Opcja z declare nie wchodzi w rachubę ponieważ nie można jej użyć w viewsie. Ale pokombinowałem udało mi się sklecić coś takiego:

 WHERE	LR_Volume_1.Data >= YEAR(DATEADD(mm,-3,GETDATE())) * 100 + MONTH(DATEADD(mm,-3,GETDATE()))
		AND LR_Volume_1.Data < YEAR(GETDATE()) * 100 + MONTH(GETDATE())

Jako, że działa bez zarzutu myślę, że z mojej strony temat wyczerpany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1