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

Introduzione

Gestire efficacemente date e orari è fondamentale per molte applicazioni di database. Sapere come formattare le date in SQL Server aiuta a garantire la coerenza dei dati, visualizzazioni user-friendly e report affidabili. Questa guida copre i formati datetime essenziali di SQL Server e mostra come gestire diversi casi d’uso utilizzando la sintassi SQL corretta.

Cos’è SQL Server?

Prima di immergerci nei formati datetime, spieghiamo brevemente cos’è SQL Server. Microsoft SQL Server è un sistema di gestione di database relazionali (RDBMS) che archivia e recupera dati per varie applicazioni. È ampiamente utilizzato negli ambienti aziendali per la sua scalabilità, prestazioni e integrazione con altri prodotti Microsoft.

Tipi di Dati per Data e Ora in SQL Server

SQL Server offre diversi tipi di dati per l’archiviazione delle informazioni relative a data e ora. Esploriamo questi tipi e i loro formati.

TipoCategoriaCasi d’Uso
datetimeLegacyArchiviazione generale di data e ora, compatibile con sistemi più vecchi
smalldatetimeLegacyArchiviazione compatta di date e orari con precisione al minuto
dateModernoArchivia solo le informazioni relative alla data, ad es. compleanni, anniversari
timeModernoArchivia solo le informazioni relative all’orario, ad es. orari giornalieri
datetime2ModernoArchiviazione di data e ora ad alta precisione, gamma di date più ampia
datetimeoffsetModernoArchiviazione di data e ora con consapevolezza del fuso orario, applicazioni globali

Tipi Legacy di Datetime in SQL Server

  1. Datetime può archiviare date e orari dal 1° gennaio 1753 al 31 dicembre 9999. Ha una precisione di 3,33 millisecondi.
  2. smalldatetime: un intervallo di tempo più breve dal 1° gennaio 1900 al 6 giugno 2079, con precisione al minuto.

Tipi di Dati Moderni (SQL Server 2008 e Versioni Successive)

  1. date: Archivia solo la parte relativa alla data, dal 1° gennaio 0001 al 31 dicembre 9999.
  2. time: Archivia solo la parte relativa all’orario, con una precisione fino a 100 nanosecondi.
  3. datetime2: Un’estensione di datetime con una gamma di date più ampia e una maggiore precisione.
  4. datetimeoffset: Simile a datetime2, ma include informazioni sull’offset del fuso orario.

Formato di Output Predefinito

Di default, SQL Server visualizza i valori datetime nel formato: “YYYY-MM-DD HH:MI:SS.mmm”. Ad esempio:

SELECT GETDATE() AS CurrentDateTime;

Questo potrebbe restituire l’orario corrente, ad esempio: “202*-**-** 14:30:45.123”

Come Formattare la Data in SQL Server

Comprendere come manipolare e formattare i valori di data in SQL è essenziale per visualizzare output leggibili e garantire filtri accurati. Che tu stia creando report o importando dati, sapere come applicare il formato datetime corretto rende le tue query più efficaci.

Conversione di Stringhe in Datetime

SQL Server fornisce diverse funzioni per convertire le stringhe in valori datetime. La funzione CONVERT è particolarmente versatile:

DECLARE @dateString VARCHAR(30) = '2024-07-12 14:30:45';
SELECT CONVERT(DATETIME, @dateString) AS ConvertedDateTime;

Questa query converte la stringa in un valore datetime.

Formattazione dell’Output della Data in SQL Server

Per controllare come appaiono i valori di data e ora nell’output, utilizza la funzione CONVERT con i codici di stile. Questo ti permette di applicare uno specifico formato data agli output SQL, sia che si tratti di formati statunitensi, ISO o personalizzati.

DECLARE @currentDate DATETIME = GETDATE();
SELECT CONVERT(VARCHAR, @currentDate, 101) AS USFormat,
       CONVERT(VARCHAR, @currentDate, 103) AS BritishFormat,
       CONVERT(VARCHAR, @currentDate, 120) AS ISO8601Format;

Questa query visualizza la data corrente nei formati statunitense (MM/DD/YYYY), britannico (DD/MM/YYYY) e ISO8601 (YYYY-MM-DD HH:MI:SS).

Manipolazione Avanzata dei Datetime

Aritmetica delle Date

SQL Server permette di eseguire operazioni aritmetiche sulle date:

DECLARE @startDate DATETIME = '2024-07-12';
SELECT 
    DATEADD(DAY, 7, @startDate) AS OneWeekLater,
    DATEADD(MONTH, 1, @startDate) AS OneMonthLater,
    DATEADD(YEAR, 1, @startDate) AS OneYearLater;

Estrazione di Parti di un Datetime

Puoi estrarre parti specifiche di un datetime utilizzando varie funzioni:

DECLARE @sampleDate DATETIME = '2024-07-12 14:30:45';
SELECT 
    YEAR(@sampleDate) AS Year,
    MONTH(@sampleDate) AS Month,
    DAY(@sampleDate) AS Day,
    DATEPART(WEEKDAY, @sampleDate) AS DayOfWeek;

Migliori Pratiche per il Formato Datetime

Quando lavori con i formati datetime in SQL Server, considera queste migliori pratiche:

  1. Usa il tipo di dato appropriato per le tue necessità. Se ti serve solo la data, usa il tipo “date” invece di “datetime”.
  2. Sii coerente con i formati datetime in tutto il tuo database e applicazione.
  3. Quando converti stringhe in datetime, usa sempre formati neutrali rispetto alla lingua (come “YYYYMMDD”) per evitare ambiguità.
  4. Utilizza query parametrizzate quando lavori con valori datetime per prevenire SQL injection e garantire un corretto tipaggio dei dati.

Risoluzione dei Problemi Comuni con i Datetime

Gestire Differenti Impostazioni Regionali

SET LANGUAGE English;
SELECT CONVERT(DATETIME, '07/12/2024') AS USDate;
SET LANGUAGE British;
SELECT CONVERT(DATETIME, '07/12/2024') AS BritishDate;

Questo esempio mostra come il cambiamento dell’impostazione della lingua influisca sull’interpretazione della data. Sii sempre esplicito riguardo al formato della data per evitare confusione.

Gestire l’Ora Legale

Quando lavori con datetimeoffset, fai attenzione ai cambiamenti dovuti all’ora legale:

DECLARE @summerDate DATETIMEOFFSET = '2024-07-12 12:00:00 +01:00';
DECLARE @winterDate DATETIMEOFFSET = '2024-12-12 12:00:00 +00:00';
SELECT 
    @summerDate AS SummerDate,
    @winterDate AS WinterDate,
    DATEDIFF(HOUR, @summerDate, @winterDate) AS HourDifference;

Riepilogo e Conclusione

Comprendere come formattare la data in SQL e scegliere il formato datetime SQL corretto è essenziale per lavorare in maniera efficace con SQL Server. Abbiamo trattato i tipi di dati fondamentali, le tecniche di formattazione e i consigli per la risoluzione dei problemi, aiutandoti così ad evitare confusione e a garantire una gestione coerente delle date nelle tue query.

Che tu stia visualizzando risultati o convertendo input, padroneggiare il formato data corretto nell’output SQL è fondamentale per l’accuratezza dei dati e la loro fruibilità.

Per diventare esperto nei formati datetime, dovresti selezionare il tipo di dato appropriato. Mantenere la coerenza nei formati utilizzati è importante. Inoltre, considera sempre il contesto dei tuoi dati quando lavori con i formati datetime. Con queste competenze sarai ben attrezzato per affrontare qualsiasi sfida relativa ai datetime.

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]