mercoledì 28 febbraio 2024

PHP e SQL Server - Gestione formato datetime dei CONVERT

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)

Nessun commento:

Posta un commento