Dato che SQL Server memorizza le date in formato AAA-MM-GG HH:MM:SS confrontando due campi data risultano sempre differenti. Per prendere solo la parte AAMMGG bisogna usare la funzione CONVERT ( data_type [ ( length ) ] , DATA_DA_CONFRONTARE [ , style ] ). La funzione restituisce una stringa lunga quanto ci pare (lenght) nel formato che ci pare (style). Alcuni esempi che trrasformano la data di oggi (GETDATE()) in vari formati.
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
per confrontare se DATA1 è maggiore di oggi :
CONVERT(VARCHAR(10),DATA1 ,111) >= CONVERT(VARCHAR(10), GETDATE() ,111
per ulteriori dettagli leggere qui
Confronto date in SQL Server,
Per avere il formato YYYYMMDD la stringa è:
SELECT CONVERT(VARCHAR(8), GETDATE(), 112)