Un problema che si incontra spesso in SQL Server, quando bisogna effettuare delle query che effettuano il confronto su due campi di tipo DateTime, consiste nel fatto che SQL Server, oltre a memorizzare la data, memorizza anche l’orario. Ad esempio una query del genere potrebbe dare questo tipo di risultato:
select Data1, Data2 from MiaTabella where Data1 <= Data2
Data1 Data2
----------------------- -----------------------
2006-11-21 12:38:00 2006-11-23 17:18:00
2006-07-24 10:52:00 2006-07-24 10:52:00
A prima vista sembrerebbe corretto, ma c’è la possibilità che si verifichi un errore piuttosto subdolo.
Esistono diverse soluzioni al problema, quella che preferisco è quella di utilizzare la funzione DATEDIFF. Se correggiamo la query in...