Datums opmaken voor rapportage

Tijdreeksanalyse in SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Opmaakfuncties

CAST()

CONVERT()

FORMAT()

Tijdreeksanalyse in SQL Server

De CAST()-functie

  • Ondersteund sinds minimaal SQL Server 2000
  • Zet het ene datatype om naar het andere, ook datumtypes
  • Geen controle over opmaak bij datum → string
  • ANSI SQL-standaard, dus in de meeste relationele en veel niet-relationele databases beschikbaar
Tijdreeksanalyse in SQL Server

De CAST()-functie gebruiken

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
Tijdreeksanalyse in SQL Server

De CONVERT()-functie

  • Ondersteund sinds minimaal SQL Server 2000
  • Handig om één datatype naar een ander om te zetten, ook datumtypes
  • Enige controle over opmaak (datum → string) via de stijlparameter
  • Specifiek voor T-SQL
Tijdreeksanalyse in SQL Server

De CONVERT()-functie gebruiken

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
Tijdreeksanalyse in SQL Server

Voorbeelden van CONVERT()-stijlen

Stijlcode

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

Formaat

  • Verenigde Staten m/d/j
  • Brits/Frans d/m/j
  • Duits d.m.j
  • Japans j/m/d
  • ISO-standaard jjjjmmdd
  • ODBC-standaard (121 voor ms)
  • ISO8601 jjjj-mm-dd uu:mm:ss.mmm
  • jjjj-mm-ddTuu:mm:ss.mmmZ
Tijdreeksanalyse in SQL Server

De FORMAT()-functie

  • Ondersteund sinds SQL Server 2012
  • Handig om een datum of getal op een bepaalde manier op te maken voor rapportage
  • Veel meer opmaakflexibiliteit (datum → string) dan CAST() of CONVERT()
  • Specifiek voor T-SQL
  • Gebruikt het .NET-framework voor conversie
  • Kan trager zijn bij veel rijen
Tijdreeksanalyse in SQL Server

De FORMAT()-functie gebruiken

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
Tijdreeksanalyse in SQL Server

De FORMAT()-functie kan trager zijn dan CAST() of CONVERT() bij grotere datasets.

Tijdreeksanalyse in SQL Server

Laten we oefenen!

Tijdreeksanalyse in SQL Server

Preparing Video For Download...