Trattare le Date con SQL Server

Uno dei problemi che più affligge chi si avvicina a SQL Server è l'utilizzo delle date.

Il campo datetime di SQL (oppure il più piccolo smalldatetime) sembra che a volte si comporti in modo misterioso e non sempre sembra essere chiaro come interpreta i valori che gli immettiamo: il formato è giorno-mese-anno, oppure mese-giorno-anno, oppure altro ancora?

Per evitare qualsiasi problema di questo tipo è sufficiente inserire e pensare alle date utilizzando il formato ISO annomesegiorno, senza separatori. Oggi, quindi, si scriverebbe come:

20050117

In questo modo, indipendentemente dalle impostazioni di localizzazione, Sql Server interpreterà correttamente anno, mese e giorno.

Spero che questo riesca a chiarire i dubbi sull'argomento, che ultimamente, sul ng di SQL stanno uscendo spesso. Tale problema, per chi sviluppa utilizzando ADO.NET non è percepito - se si utilizzano correttamente i parametri, ragione in più per farlo - ma è qualcosa che ci si deve abituare a trattare se si scrive anche del codice T-SQL.

Appena ho un'altra manciata di minuti liberi scrivo anche due righe sulla gestione del tempo con SQL, altra questione tipicamente problematica: ogni data inserita prevede, anche se non specificato dall'utente, l'inserimento dei valori relativi ad ora, minuti, secondi e millisecondi. La data sopra riportata, quindi, per SQL Server è

20050117 00:00:00.000

cosa che ovviamente può dare problemi se non se ne tiene conto adeguatamente.

Print | posted on Monday, January 17, 2005 3:05 PM

Feedback

# Trattare le Date con SQL Server

Left by .NET Tools Blog at 1/17/2005 3:07 PM
Gravatar
Comments have been closed on this topic.

Copyright © Davide Mauri

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski