MSSQL: usporedba datuma koi je varchar sa datumom koji je datetime

Problem: u bazi je datum u polju varchar u obliku yyyy-mm-dd i zanima nas sve gdje je taj datum između danas i za 30 dana

Rješenje: varchar castati kao date. Ali i getdate() castati kao date jer getdate() vraća datetime


SELECT * FROM tablica

WHERE DatumVarchar is not null

AND CAST(DatumVarchar  as date) >= DATEADD(d, 0, DATEDIFF(d, 0,  CAST(GETDATE() as date)))

AND CAST(DatumVarchar as date) <= DATEADD(d, 30, DATEDIFF(d, 0,  CAST(GETDATE() as date)))

Comments are closed.