Formattare le date per i report

Analisi delle serie temporali in SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Funzioni di formattazione

CAST()

CONVERT()

FORMAT()

Analisi delle serie temporali in SQL Server

La funzione CAST()

  • Supportata almeno da SQL Server 2000
  • Converte un tipo di dato in un altro, incluse le date
  • Nessun controllo sul formato da date a stringhe
  • Standard ANSI SQL: la maggior parte dei database relazionali e non lo supporta
Analisi delle serie temporali in SQL Server

Uso della funzione CAST()

DECLARE
    @SomeDate DATETIME2(3) = '1991-06-04 08:00:09',
    @SomeString NVARCHAR(30) = '1991-06-04 08:00:09',
    @OldDateTime DATETIME = '1991-06-04 08:00:09';
SELECT
    CAST(@SomeDate AS NVARCHAR(30)) AS DateToString,
    CAST(@SomeString AS DATETIME2(3)) AS StringToDate,
    CAST(@OldDateTime AS NVARCHAR(30)) AS OldDateToString;
DateToString StringToDate OldDateToString
1991-06-04 08:00:09.000 1991-06-04 08:00:09.000 Jun 4 1991 8:00AM
Analisi delle serie temporali in SQL Server

La funzione CONVERT()

  • Supportata almeno da SQL Server 2000
  • Utile per convertire un tipo di dato in un altro, incluse le date
  • Un po' di controllo sul formato da date a stringhe tramite il parametro style
  • Specifica di T-SQL
Analisi delle serie temporali in SQL Server

Uso della funzione CONVERT()

DECLARE
    @SomeDate DATETIME2(3) = '1793-02-21 11:13:19.033';
SELECT
    CONVERT(NVARCHAR(30), @SomeDate, 0) AS DefaultForm,
    CONVERT(NVARCHAR(30), @SomeDate, 1) AS US_mdy,
    CONVERT(NVARCHAR(30), @SomeDate, 101) AS US_mdyyyy,
    CONVERT(NVARCHAR(30), @SomeDate, 120) AS ODBC_sec;
GO
DefaultForm US_mdy US_mdyyyy ODBC_sec
Feb 21 1793 11:13 AM 02/21/93 02/21/1793 1793-02-21 11:13:19
Analisi delle serie temporali in SQL Server

Esempi di stili CONVERT()

Codice stile

  • 1 / 101
  • 3 / 103
  • 4 / 104
  • 11 / 111
  • 12 / 112
  • 20 / 120
  • 126
  • 127

Formato

  • Stati Uniti m/g/a
  • Britannico/Francese g/m/a
  • Tedesco g.m.a
  • Giapponese a/m/g
  • Standard ISO aaaa.mm.gg
  • Standard ODBC (121 per ms)
  • ISO8601 aaaa-mm-gg hh:mi:ss.mmm
  • aaaa-mm-ggThh:mi:ss.mmmZ
Analisi delle serie temporali in SQL Server

La funzione FORMAT()

  • Supportata da SQL Server 2012
  • Utile per formattare date o numeri per i report
  • Molta più flessibilità nel formattare date in stringhe rispetto a CAST() o CONVERT()
  • Specifica di T-SQL
  • Usa il framework .NET per la conversione
  • Può essere più lenta su grandi volumi di righe
Analisi delle serie temporali in SQL Server

Uso della funzione FORMAT()

DECLARE
    @SomeDate DATETIME2(3) = '1793-02-21 11:13:19.033';
SELECT
    FORMAT(@SomeDate, 'd', 'en-US') AS US_d,
    FORMAT(@SomeDate, 'd', 'de-DE') AS DE_d,
    FORMAT(@SomeDate, 'D', 'de-DE') AS DE_D,
    FORMAT(@SomeDate, 'yyyy-MM-dd') AS yMd;
US_d DE_d DE_D yMd
2/21/1793 21.02.1793 Donnerstag, 21. February 1793 1793-02-21
Analisi delle serie temporali in SQL Server

La funzione FORMAT() può essere più lenta di CAST() o CONVERT() con dataset più grandi.

Analisi delle serie temporali in SQL Server

Passons à la pratique !

Analisi delle serie temporali in SQL Server

Preparing Video For Download...