I SQL Server kan du bruge T-SQL FORMAT()
funktion til at formatere dato og/eller klokkeslæt. Angiv blot to argumenter; dato/klokkeslæt og formatet, der skal bruges.
Formatet leveres som en formatstreng. En formatstreng definerer, hvordan outputtet skal formateres.
FORMAT()
funktion accepterer også et valgfrit "kultur"-argument, som giver dig mulighed for at angive et sprog/lokalitet, som resultaterne skal overholde.
Grundlæggende eksempel
Her er et grundlæggende eksempel på brug af FORMAT()
funktion til at formatere en dato.
Rådato
For det første, her er, hvordan den rå dato ser ud. Hvis vi kører følgende sætning:
SELECT GETDATE();
Vi får et resultat, der ser sådan ud:
2018-05-03 02:36:54.480
Formateret dato
Nu kan vi bruge FORMAT()
funktion til at formatere denne dato og klokkeslæt til vores foretrukne format. For eksempel kunne vi gøre dette:
SELECT FORMAT( GETDATE(), 'D');
Hvilket resulterer i dette:
Thursday, May 3, 2018
Dette er blot et af mange formater, som vi kunne vælge. Her er en anden:
SELECT FORMAT( GETDATE(), 'd');
Hvilket resulterer i dette:
5/3/2018
De faktiske resultater vil variere afhængigt af den anvendte kultur. Som standard bruges sproget for den aktuelle session, men du kan også tilsidesætte dette med et tredje ("kultur") argument.
Indstilling af en lokalitet
Vi kunne tilføje et tredje ("kultur") argument til ovenstående kode for at bestemme, hvilken lokalitet der skal bruges til datoens format.
Så vi kunne f.eks. gøre dette:
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
Hvilket resulterer i dette:
03/05/2018
Her er et andet eksempel:
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
Hvilket resulterer i dette:
2018/5/3
Hvis kulturen argument er ikke angivet, sproget for den aktuelle session bruges.
Sådan finder du sproget for den aktuelle session, og her er hvordan du indstiller det.
Bemærk, at det aktuelle sprog normalt vil være det samme som brugerens standardsprog, men dette er muligvis ikke tilfældet, hvis brugeren har ændret det aktuelle sprog ved hjælp af SET LANGUAGE
. Under alle omstændigheder kan du også finde ud af, hvad standardsproget er.
Som du måske forestiller dig, kan du få helt forskellige resultater afhængigt af dit nuværende sprog eller værdien af ethvert "kultur"-argument. Se Hvordan sprogindstillinger kan påvirke dine FORMAT()-resultater for flere eksempler.
Udtrækning af måned/uge/år
Du kan bruge FORMAT()
funktion for kun at returnere månedsdelen af datoen, eller ugen eller året efter behov.
Bemærk, at der skelnes mellem store og små bogstaver. For eksempel MMM
formaterer måneden anderledes end mmm
.
Måned
Eksempelkode til returnering af månedsdelen:
SELECT FORMAT( GETDATE(), 'MMM');
Resultat:
May
År
Eksempelkode til returnering af årsdelen:
SELECT FORMAT( GETDATE(), 'yyyy');
Resultat:
2018
Dag
Eksempelkode til returnering af dagsdelen:
SELECT FORMAT( GETDATE(), 'dddd');
Resultat:
Thursday
Udtrækning af tiden
Du kan også bruge FORMAT()
funktion for at returnere tiden i et specificeret format.
Her er et eksempel:
SELECT FORMAT( GETDATE(), 'hh.mm');
Resultat:
03.37
AM/PM-designatoren
Du kan også tilføje tt
for at inkludere AM/PM-betegnelsen:
SELECT FORMAT( GETDATE(), 'hh.mm tt');
Resultat:
03.37 AM
Kombinering af formatstrenge
Du kan også kombinere disse formatstrenge for at give dit eget tilpassede datoformat. Eksempel:
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Resultat:
03.41 AM Thursday, 03 May, 2018
Reference for dato- og tidsformatspecifikationer
Følgende artikler indeholder alle dato- og klokkeslætformatspecifikationerne, der kan bruges med FORMAT()
funktion i SQL Server, sammen med T-SQL eksempler:
- Standard dato- og tidsformatstrenge
- Tilpassede dato- og tidsformatstrenge
Disse er de samme dato- og klokkeslætformatspecifikationer, som understøttes af .NET Framework (FORMAT()
funktion er afhængig af .NET Framework).
Numerisk formatspecifikationsreference
De følgende artikler indeholder alle de numeriske formatspecifikationer, du kan bruge med FORMAT()
funktion (dvs. til formatering af tal):
- Standard numerisk formatstrenge
- Tilpassede numeriske formatstrenge
Dette er de samme numeriske formatspecifikationer, som understøttes af .NET Framework.
Andre datofunktioner
T-SQL indeholder også en masse andre funktioner, der hjælper dig med at udtrække dele fra datoer. Disse omfatter funktioner såsom DAY()
, MONTH()
, YEAR()
, DATEPART()
, og DATENAME()
.