DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Formati Datetime di SQL Server: Una Guida Completa

Formati Datetime di SQL Server: Una Guida Completa

Esempi di formattazione datetime in SQL Server
Esempi di formattazione datetime in SQL Server, che coprono stili di conversione e gestione dei fusi orari.

Introduzione

Lavorare con valori di data e ora è una parte routinaria dello sviluppo di database. Che Lei stia filtrando righe, creando report o presentando timestamp, una formattazione coerente aiuta a garantire chiarezza. Questo articolo spiega come formattare e manipolare le date in SQL Server utilizzando strumenti e funzioni integrate.

Comprendere come utilizzare le funzioni datetime di SQL Server migliora l’accuratezza dei report, garantisce una corretta formattazione regionale e semplifica la logica applicativa a valle. Nelle sezioni seguenti, esploreremo i tipi di dati fondamentali, le opzioni di formattazione e le best practices per il datetime in SQL Server.

Panoramica sulla Conformità dei Dati | Quadri Regolamentari

Gestione dei Fusi Orari e Cheat Sheet per Codici di Stile Rapidi

Conversione Istantanea con AT TIME ZONE

A partire da SQL Server 2016, AT TIME ZONE semplifica la conversione dei timestamp UTC in orari locali (e viceversa) senza dover codificare manualmente gli offset o gestire le modifiche dovute all’ora legale.

-- Memorizza in UTC una sola volta, presenta il risultato in orario locale
DECLARE @utc DATETIME2 = SYSUTCDATETIME();

SELECT 
  @utc                         AS StoredUTC,
  @utc AT TIME ZONE 'UTC'
       AT TIME ZONE 'Central European Standard Time' AS BerlinTime,
  @utc AT TIME ZONE 'UTC'
       AT TIME ZONE 'Pacific Standard Time'          AS SeattleTime;
    

I codici di Stile CONVERT più Utilizzati

StileEsempio di OutputUso Tipico
10107/15/2025US MM/DD/YYYY
10315/07/2025EU DD/MM/YYYY
10415.07.2025DE DD.MM.YYYY
1202025-07-15 13:25:42ISO 24-hour
1212025-07-15 13:25:42.347ISO ms precision

Attenga agli stili ISO (120/121) per le API, riservi i formati specifici alla presentazione e memorizzi sempre in UTC quando le righe viaggiano tra regioni.

Che Cos’è SQL Server?

Microsoft SQL Server è una piattaforma di database relazionale utilizzata ampiamente negli ambienti enterprise. Supporta carichi di lavoro transazionali e analitici, offrendo robuste capacità per la gestione dei dati strutturati — compresi strumenti integrati per l’archiviazione, la formattazione e le operazioni aritmetiche sui datetime.

Tipi di Dati per Data e Ora in SQL Server

SQL Server offre diversi tipi integrati per memorizzare e lavorare con i valori datetime. Alcuni sono compatibili con le versioni legacy, mentre altri offrono precisione moderna e supporto per i fusi orari. La scelta del tipo giusto dipende dal livello di accuratezza e dall’efficienza di archiviazione richiesti.

TipoCategoriaCasi d’Uso
datetimeLegacyMemorizzazione generale con precisione al millisecondo
smalldatetimeLegacyMemorizzazione compatta, accurata al minuto
dateModernoMemorizza solo la data (senza componente temporale)
timeModernoMemorizza solo il tempo, ideale per la pianificazione
datetime2ModernoData e ora ad alta precisione con intervallo più ampio
datetimeoffsetModernoInclude la consapevolezza del fuso orario

Formato di Output Predefinito

Per impostazione predefinita, una query come SELECT GETDATE(); restituisce un risultato nel formato 'YYYY-MM-DD HH:MI:SS.mmm'. Ad esempio:

2024-07-15 13:25:42.347

Per personalizzare il formato, utilizzi le funzioni CONVERT() o FORMAT() con i codici di stile.

Formattare le Date in SQL Server

Trasformare i valori datetime in stringhe leggibili è essenziale per report o output nelle interfacce utente. La funzione CONVERT() accetta codici di stile per vari formati specifici per regione.

DECLARE @date DATETIME = GETDATE();
SELECT 
  CONVERT(VARCHAR, @date, 101) AS US_Format,       -- MM/DD/YYYY
  CONVERT(VARCHAR, @date, 103) AS UK_Format,       -- DD/MM/YYYY
  CONVERT(VARCHAR, @date, 120) AS ISO_Format;      -- YYYY-MM-DD HH:MI:SS
    

Lavorare con Stringhe e Date

Quando l’input viene ricevuto come stringa, è possibile convertirlo utilizzando le funzioni CONVERT() o CAST(). Questo facilita l’integrazione nelle pipeline e l’utilizzo di SQL dinamico.

DECLARE @str VARCHAR(20) = '2024-07-12 14:30:00';
SELECT CONVERT(DATETIME, @str) AS ConvertedDate;
    

Ogni volta che la precisione è importante, utilizzi datetime2 o datetimeoffset per un intervallo esteso e funzionalità relative al fuso orario.

Aritmetica delle Date

Aggiungere o sottrarre intervalli di tempo può essere gestito utilizzando DATEADD(). Questo rende semplice calcolare date di scadenza, orari di consegna o finestre per i report.

DECLARE @start DATETIME = '2024-07-12';
SELECT
  DATEADD(DAY, 5, @start) AS PlusFiveDays,
  DATEADD(MONTH, 1, @start) AS NextMonth;
    

Estrazione di Parti della Data

Ha bisogno di estrarre una parte specifica di una data? SQL Server offre funzioni dirette per ottenere anno, mese, giorno e giorno della settimana.

SELECT 
  YEAR(GETDATE()) AS Year,
  MONTH(GETDATE()) AS Month,
  DAY(GETDATE()) AS Day,
  DATEPART(WEEKDAY, GETDATE()) AS Weekday;
    

Migliori Pratiche per il Datetime in SQL Server

  1. Utilizzi il tipo di datetime più piccolo che soddisfi le Sue esigenze. Ad esempio, usi date se il tempo non è rilevante.
  2. Attenga alle stringhe formattate in ISO quando importa/esporta per evitare ambiguità.
  3. Si riferisca ai codici stile Microsoft ufficiali per garantire coerenza nella formattazione.
  4. Presti attenzione alle impostazioni di locale e lingua del server: esse possono alterare il parsing dell’input e l’ordine giorno-mese.

Gestione dei Fusi Orari

La consapevolezza dei fusi orari è fondamentale per le applicazioni globali. Il tipo datetimeoffset di SQL Server aiuta a garantire coerenza memorizzando valori UTC e convertendoli nei fusi orari locali.

DECLARE @utc DATETIMEOFFSET = '2024-07-12 12:00:00 +00:00';
DECLARE @cet DATETIMEOFFSET = '2024-07-12 14:00:00 +02:00';
SELECT DATEDIFF(HOUR, @utc, @cet) AS HourDifference;
    

Riepilogo e Conclusioni

Gestire e formattare i valori datetime in SQL Server non deve essere complicato. Conoscendo i tipi di dati appropriati e applicando strategicamente le funzioni di conversione, Lei può garantire che le applicazioni presentino informazioni temporali in maniera chiara e coerente.

Che Lei stia realizzando report, elaborando stringhe o implementando logiche aziendali sensibili al tempo, padroneggiare il datetime in SQL Server Le offre un controllo preciso sui dati temporali. Utilizzi le funzioni integrate, segua gli standard di formattazione in linea con le specifiche e sfrutti il supporto per i fusi orari per ridurre errori e accrescere la fiducia degli utenti.

Successivo

Soluzioni Cloud vs SaaS

Soluzioni Cloud vs SaaS

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Informazioni generali:
[email protected]
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
[email protected]