Utilizzando una connessione ad un DB SQL Server da PHP (tramite PDO), c'è il problema del formato delle date.
Di default, il sistema considera il formato "americano" (mese/giorno/anno), mentre spesso la gestione che si vuole è quella "italiana" (giorno/mese/anno).
Questo può portare a parecchi problemi.
Come fare per risolverlo?
Se si usa il PDO, la soluzione è effettuare, come prima chiamata dopo l'inizializzazione della classe che gestisce la connessione, della seguente query:
SET DATEFORMAT dmy
Questo imposta il formato corretto delle date e, quindi, per le successive query la costruzione dei "CONVERT(DATETIME, [...])" viene eseguita correttamente.
L'alternativa è, ovviamente, "girare" tutte le costruzioni delle date in formato stringa. Per farlo, bisogna seguire questa formattazione:
anno / mese / giorno
(unico problema: questo funziona nella connessione "di default", ma la stessa query eseguita su Management Studio -in italiano- darà errore)