Ga naar hoofdinhoud

FORMAT() SQL-FUNCTIE

FORMAT() is een van de meest gebruikte functies in SQL. Leer de belangrijkste toepassingen in deze tutorial.
· 3 min lezen

Verken met AI

Database-uitvoer is zelden direct geschikt voor rapportages. Prijzen komen terug als 1234.5 in plaats van $1,234.50. Datums worden weergegeven als 2023-02-01 04:05:06 terwijl je iets leesbaarders wilde. 

De SQL-functie FORMAT() kan dan handig zijn. Ze zet getallen en datums om in opgemaakte tekst en heeft redelijke ondersteuning voor verschillende valuta’s of aangepaste patronen.

Deze tutorial behandelt de syntaxis en vier veelvoorkomende use-cases.

Wat is de functie FORMAT()?

FORMAT() zet getallen of datetimes om in tekst, met regels voor hoe ze worden weergegeven.

Wanneer gebruik je FORMAT() in SQL

FORMAT() is handig voor het weergeven van datums, valuta en numerieke waarden in een specifiek formaat. 

SQL FORMAT()-syntaxis

FORMAT(value, format[, culture])

Parameter

Wat is het?

Value

Een vereiste parameter die verwijst naar de kolom die moet worden opgemaakt 

Format

Een vereiste parameter die het opmaakpatroon van de waarde specificeert. Dit moet een .NET-opmaakstring bevatten. We illustreren de verschillende toegestane opmaken in de voorbeelden hieronder

Culture

Een optionele parameter die de locale-afhankelijke opmaak van datum/tijd specificeert.

Voorbeelden van FORMAT()

Voorbeeld 1: Numerieke variabelen opmaken

SELECT
   FORMAT(0112223333, ‘##-###-####') -- replace format with what is shown in the table below.
 

phone_number

0

11-222-3333

Voorbeeld 2: Datetime opmaken

We kunnen een variabele van het type datetime in verschillende formaten opmaken.

DECLARE @d DATETIME = CAST('2023-02-01 04:05:06' AS DATETIME);  

SELECT
   FORMAT(@d, format) -- replace format with what is shown in the table below.

Format

Query

Voorbeeld van opgemaakte datum voor 1 februari 2023 04:05:06 AM

d

FORMAT(@d, ‘d')

2/1/2023

D

FORMAT(@d, D)

Wednesday, February 1, 2023

f

FORMAT(@d, ‘f')

Wednesday, February 1, 2023 4:05 AM

F

FORMAT(@d, ‘F')

Wednesday, February 1, 2023 4:05:06 AM

g

FORMAT(@d, ‘g')

10/8/2022 6:01 AM

G

FORMAT(@d, ‘G')

10/8/2022 6:01:06 AM

O

FORMAT(@d, ‘O')

2022-10-08T06:01:06.117Z

r

FORMAT(@d, ‘r')

Wed, 01 Feb 2023 04:05:06 GMT

R

FORMAT(@d, ‘R')

Wed, 01 Feb 2023 04:05:06 GMT

s

FORMAT(@d, ‘s')

2023-02-01T04:05:06

u

FORMAT(@d, ‘u')

2023-02-01 04:05:06Z

U

FORMAT(@d, ‘U')

Wednesday, February 1, 2023 4:05:06 AM

t

FORMAT(@d, ‘t')

4:05 AM

T

FORMAT(@d, ‘T')

4:05:06 AM

Y

FORMAT(@d, ‘Y')

February 2023

MM_dd_yyyy

FORMAT(@d, ‘MM_dd_yyyy')

02_01_2023

MMM-dd-yy

FORMAT(@d,'MMM-dd-yy')

Feb 01 23

yyyy-dd-MM

FORMAT(@d,'yyyy-dd-MM')

2023-01-02

yyyy-dd-MM hh.mm

FORMAT(@d,'yyyy-dd-MM hh.mm')

2023-01-02 04.05

yyyy-dd-MM hh.mm.ss

FORMAT(@d,'yyyy-dd-MM hh.mm.ss')

2023-01-02 04.05.06

yyyy-dd-MM hh.mm.ss tt

FORMAT(@d,'yyyy-dd-MM hh.mm.ss tt')

2023-01-02 04.05.06 AM

Voorbeeld 3: Cultuurgevoelige datumopmaak

We kunnen datums in verschillende talen opmaken met de parameter culture. 

DECLARE @d DATE = CAST('2023-02-01' AS DATE);  

SELECT
   FORMAT(@d, format, culture) -- replace format with what is shown in the table below.

Culture

Query

Voorbeeld van opgemaakte datum voor 1 februari 2023 

US English (en-US)

FORMAT(@d, 'd', 'en-US') 

2/1/2023

FORMAT(@d, 'f', 'en-US') 

Wednesday, February 1, 2023 12:00 AM

Great Britain English (en-gb)

FORMAT(@d, 'd', 'en-gb')

01/02/2023

FORMAT(@d, 'f', 'en-gb')

01 February 2023 00:00

Duits (de-de)

FORMAT(@d, 'd', 'de-de') 

01.02.2023

FORMAT(@d, 'f', 'de-de') 

Mittwoch, 1. Februar 2023 00:00

Chinees (zh-cn)

FORMAT(@d, 'd', 'zh-cn')

2023/2/1

FORMAT(@d, 'f', 'zh-cn')

2023年2月1日 0:00

Indiaas (hi-in)

FORMAT(@d, 'd', ‘hi-in')

01-02-0203

FORMAT(@d, 'f', ‘hi-in')

01 फरवरी 2023 00:00

Russisch (ru-ru)

FORMAT(@d, 'd', ru-ru') 

01-02-2023

FORMAT(@d, 'f', ru-ru') 

1 февраля 2023 г. 0:00

Spanje (gl-es)

FORMAT(@d, 'd', 'gl-es')

01/02/2023

FORMAT(@d, 'f', 'gl-es')

mércores 01 febreiro 2023 00:00

Voorbeeld 4: Valuta opmaken

We kunnen numerieke waarden ook eenvoudig als valuta opmaken.

SELECT
   FORMAT(amount, 'c', culture) -- replace format with what is shown in the table below.

Culture

Query

Voorbeeld van opgemaakte valuta

US English (en-US)

SELECT 

   FORMAT(5.5, 'c', 'en-US') 

$5.5

Great Britain English (en-gb)

SELECT 

   FORMAT(@d, 'c', 'en-gb')

£5.5

Duits (de-de)

SELECT 

   FORMAT(@d, 'c', 'de-de') 

5,50 €

Chinees (zh-cn)

SELECT 

   FORMAT(@d, 'c', 'zh-cn')

¥5.50

Indiaas (hi-in)

SELECT 

   FORMAT(@d, 'c', ‘hi-in')

₹5.50

Russisch (ru-ru)

SELECT 

   FORMAT(@d, 'c', ru-ru') 

5,50 ₽

Spanje (gl-es)

SELECT 

   FORMAT(@d, 'c', 'gl-es')

€5,50

Technische vereisten

FORMAT() werkt in SQL Server (vanaf 2012) en Azure SQL Database.  FORMAT() werkt ook in PostgreSQL, maar gedraagt zich anders. Je kunt er meer over leren in deze cursus.

Zie ook

Leer meer over SQL

Conclusie

FORMAT() is de moeite waard om te leren, omdat het een van SQL’s ergernissen verandert in een oplossing van één regel.

Eén kanttekening om in gedachten te houden: dit is syntaxis voor SQL Server en Azure SQL. PostgreSQL heeft zijn eigen FORMAT()-functie, maar die werkt anders — controleer je dialect voordat je op deze patronen vertrouwt.

Onderwerpen

Gerelateerd