Mise en forme des dates pour les rapports

Analyse de séries chronologiques dans SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Fonctions de mise en forme

CAST()

CONVERT()

FORMAT()

Analyse de séries chronologiques dans SQL Server

La fonction CAST()

  • Pris en charge au moins depuis SQL Server 2000
  • Convertit un type de données en un autre, y compris les types de date
  • Aucun contrôle sur la mise en forme lors du passage de dates à des chaînes
  • Conforme à la norme ANSI SQL ; la plupart des BD relationnelles et non relationnelles l'offrent
Analyse de séries chronologiques dans SQL Server

Utiliser la fonction 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
Analyse de séries chronologiques dans SQL Server

La fonction CONVERT()

  • Pris en charge au moins depuis SQL Server 2000
  • Utile pour convertir un type de données en un autre, y compris les types de date
  • Certain contrôle sur la mise en forme de dates en chaînes via le paramètre « style »
  • Spécifique à T‑SQL
Analyse de séries chronologiques dans SQL Server

Utiliser la fonction 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
Analyse de séries chronologiques dans SQL Server

Exemples de styles CONVERT()

Code de style

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

Format

  • États‑Unis m/j/a
  • Britannique/Français j/m/a
  • Allemand j.m.a
  • Japonais a/m/j
  • Norme ISO aaaa mm jj
  • Norme ODBC (121 pour ms)
  • ISO8601 aaaa-mm-jj hh:mi:ss.mmm
  • aaaa-mm-jjThh:mi:ss.mmmZ
Analyse de séries chronologiques dans SQL Server

La fonction FORMAT()

  • Pris en charge depuis SQL Server 2012
  • Utile pour formater une date ou un nombre pour des rapports
  • Beaucoup plus de souplesse pour convertir des dates en chaînes que CAST() ou CONVERT()
  • Spécifique à T‑SQL
  • Utilise l'infrastructure .NET pour la conversion
  • Peut être plus lent avec de grands volumes de lignes
Analyse de séries chronologiques dans SQL Server

Utiliser la fonction 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
Analyse de séries chronologiques dans SQL Server

La fonction FORMAT() peut être plus lente que CAST() ou CONVERT() avec de grands ensembles de données.

Analyse de séries chronologiques dans SQL Server

Passons à la pratique !

Analyse de séries chronologiques dans SQL Server

Preparing Video For Download...