Formátování dat pro reporting

Time Series Analysis in SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Funkce pro formátování

CAST()

CONVERT()

FORMAT()

Time Series Analysis in SQL Server

Funkce CAST()

  • Podporováno nejméně od SQL Server 2000
  • Převádí jeden datový typ na jiný, včetně datových typů pro datum
  • Bez kontroly nad formátováním dat na řetězce
  • Standard ANSI SQL – funkce je dostupná ve většině relačních i nerelačních databází
Time Series Analysis in SQL Server

Použití funkce 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
Time Series Analysis in SQL Server

Funkce CONVERT()

  • Podporováno nejméně od SQL Server 2000
  • Užitečné pro převod jednoho datového typu na jiný, včetně typů pro datum
  • Částečná kontrola nad formátováním dat na řetězce pomocí parametru stylu
  • Specifické pro T-SQL
Time Series Analysis in SQL Server

Použití funkce 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
Time Series Analysis in SQL Server

Ukázkové styly CONVERT()

Kód stylu

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

Formát

  • USA m/d/r
  • Britský/francouzský d/m/r
  • Německý d.m.r
  • Japonský r/m/d
  • Standard ISO yyyymmdd
  • Standard ODBC (121 pro ms)
  • ISO8601 yyyy-mm-dd hh:mi:ss.mmm
  • yyyy-mm-ddThh:mi:ss.mmmZ
Time Series Analysis in SQL Server

Funkce FORMAT()

  • Podporováno od SQL Server 2012
  • Užitečné pro formátování data nebo čísla pro reporting
  • Větší flexibilita při převodu dat na řetězce než CAST() nebo CONVERT()
  • Specifické pro T-SQL
  • Využívá rozhraní .NET pro převod
  • Může být pomalejší při zpracování většího počtu řádků
Time Series Analysis in SQL Server

Použití funkce 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
Time Series Analysis in SQL Server

Funkce FORMAT() může být pomalejší než CAST() nebo CONVERT() při práci s většími datovými sadami.

Time Series Analysis in SQL Server

Pojďme si procvičit!

Time Series Analysis in SQL Server

Preparing Video For Download...