I SQL Server kan du använda T-SQL FORMAT()
funktion för att formatera datum och/eller tid. Ge bara två argument; datum/tid och formatet som ska användas.
Formatet levereras som en formatsträng. En formatsträng definierar hur utdata ska formateras.
Den FORMAT()
funktion accepterar också ett valfritt "kultur"-argument, som låter dig ange ett språk/lokal som resultaten ska följa.
Grundläggande exempel
Här är ett grundläggande exempel på hur du använder FORMAT()
funktion för att formatera ett datum.
Rådatum
Först, så här ser det råa datumet ut. Om vi kör följande sats:
SELECT GETDATE();
Vi får ett resultat som ser ut ungefär så här:
2018-05-03 02:36:54.480
Formaterat datum
Nu kan vi använda FORMAT()
funktion för att formatera datumet och tiden till vårt föredragna format. Vi skulle till exempel kunna göra detta:
SELECT FORMAT( GETDATE(), 'D');
Vilket resulterar i detta:
Thursday, May 3, 2018
Detta är bara ett av många format som vi kan välja. Här är en annan:
SELECT FORMAT( GETDATE(), 'd');
Vilket resulterar i detta:
5/3/2018
De faktiska resultaten kommer att variera beroende på vilken kultur som används. Som standard används språket för den aktuella sessionen, men du kan även åsidosätta detta med ett tredje ("kultur") argument.
Ställa in ett språk
Vi skulle kunna lägga till ett tredje (“kultur”) argument till ovanstående kod för att bestämma lokalen som ska användas för datumets format.
Så vi skulle kunna göra detta till exempel:
SELECT FORMAT( GETDATE(), 'd', 'en-gb');
Vilket resulterar i detta:
03/05/2018
Här är ett annat exempel:
SELECT FORMAT( GETDATE(), 'd', 'zh-cn');
Vilket resulterar i detta:
2018/5/3
Om kulturen argumentet inte tillhandahålls, språket för den aktuella sessionen används.
Så här hittar du språket för den aktuella sessionen och så här ställer du in det.
Observera att det aktuella språket vanligtvis är detsamma som användarens standardspråk, men detta kanske inte är fallet om användaren har ändrat det aktuella språket med SET LANGUAGE
. I vilket fall som helst kan du också ta reda på vilket standardspråk som är.
Som du kanske föreställer dig kan du få helt olika resultat beroende på ditt nuvarande språk eller värdet av ett "kultur"-argument. Se Hur språkinställningar kan påverka dina FORMAT()-resultat för fler exempel.
Extrahera månad/vecka/år
Du kan använda FORMAT()
funktion för att endast returnera månadsdelen av datumet, eller veckan eller året efter behov.
Observera att dessa är skiftlägeskänsliga. Till exempel MMM
formaterar månaden annorlunda än mmm
.
Månad
Exempelkod för att returnera månadsdelen:
SELECT FORMAT( GETDATE(), 'MMM');
Resultat:
May
År
Exempelkod för att returnera årsdelen:
SELECT FORMAT( GETDATE(), 'yyyy');
Resultat:
2018
Dag
Exempelkod för att returnera dagdelen:
SELECT FORMAT( GETDATE(), 'dddd');
Resultat:
Thursday
Extrahera tiden
Du kan också använda FORMAT()
funktion för att returnera tiden i ett specificerat format.
Här är ett exempel:
SELECT FORMAT( GETDATE(), 'hh.mm');
Resultat:
03.37
AM/PM-designatorn
Du kan också lägga till tt
för att inkludera AM/PM-beteckningen:
SELECT FORMAT( GETDATE(), 'hh.mm tt');
Resultat:
03.37
Kombinera formatsträngar
Du kan också kombinera dessa formatsträngar för att skapa ditt eget anpassade datumformat. Exempel:
SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');
Resultat:
03.41 AM Thursday, 03 May, 2018
Referens för datum- och tidsformatspecifikationer
Följande artiklar innehåller alla datum- och tidsformatspecifikationer som kan användas med FORMAT()
funktion i SQL Server, tillsammans med T-SQL-exempel:
- Stängar för standardformat för datum och tid
- Anpassade datum- och tidsformatsträngar
Dessa är samma datum- och tidsformatspecifikationer som stöds av .NET Framework (FORMAT()
funktionen bygger på .NET Framework).
Referens för numeriska formatspecifikationer
Följande artiklar innehåller alla numeriska formatspecifikationer som du kan använda med FORMAT()
funktion (d.v.s. för att formatera tal):
- Stängar i standardnumeriskt format
- Strängar med anpassat numeriskt format
Dessa är samma numeriska formatspecifikationer som stöds av .NET Framework.
Övriga datumfunktioner
T-SQL innehåller också ett gäng andra funktioner som hjälper dig att extrahera delar från datum. Dessa inkluderar funktioner som DAY()
, MONTH()
, YEAR()
, DATEPART()
, och DATENAME()
.