Formatarea datelor pentru raportare

Analiza seriilor de timp în SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Funcții de formatare

CAST()

CONVERT()

FORMAT()

Analiza seriilor de timp în SQL Server

Funcția CAST()

  • Disponibilă cel puțin din SQL Server 2000
  • Convertește un tip de date în altul, inclusiv tipuri dată
  • Fără control asupra formatării datelor în șiruri
  • Standard ANSI SQL, disponibil în majoritatea bazelor de date relaționale și nerelaționale
Analiza seriilor de timp în SQL Server

Utilizarea funcției 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
Analiza seriilor de timp în SQL Server

Funcția CONVERT()

  • Disponibilă cel puțin din SQL Server 2000
  • Utilă pentru conversia unui tip de date în altul, inclusiv tipuri dată
  • Control parțial asupra formatării datelor în șiruri prin parametrul de stil
  • Specifică T-SQL
Analiza seriilor de timp în SQL Server

Utilizarea funcției 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
Analiza seriilor de timp în SQL Server

Exemple de stiluri CONVERT()

Cod stil

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

Format

  • SUA m/z/a
  • Britanic/Francez z/m/a
  • German z.m.a
  • Japonez a/m/z
  • Standard ISO aaaammzz
  • Standard ODBC (121 pentru ms)
  • ISO8601 yyyy-mm-dd hh:mi:ss.mmm
  • yyyy-mm-ddThh:mi:ss.mmmZ
Analiza seriilor de timp în SQL Server

Funcția FORMAT()

  • Disponibilă începând cu SQL Server 2012
  • Utilă pentru formatarea unei date sau unui număr în scopuri de raportare
  • Flexibilitate mai mare la conversia datelor în șiruri față de CAST() sau CONVERT()
  • Specifică T-SQL
  • Utilizează cadrul .NET pentru conversie
  • Poate fi mai lentă la volume mari de date
Analiza seriilor de timp în SQL Server

Utilizarea funcției 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
Analiza seriilor de timp în SQL Server

Funcția FORMAT() poate fi mai lentă decât CAST() sau CONVERT() pentru seturi mari de date.

Analiza seriilor de timp în SQL Server

Să exersăm!

Analiza seriilor de timp în SQL Server

Preparing Video For Download...