sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man formaterar datum och tid i SQL Server

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() .


  1. Sträng bokstaver och escape-tecken i postgresql

  2. Vill du ta bort flera rader med ID?

  3. Anslut till fjärrpostgresql-server på amazon ec2

  4. PDOException SQLSTATE[HY000] [2002] Ingen sådan fil eller katalog