sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan formateres dato og klokkeslæt i SQL Server

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


  1. Sjovt med beskeder

  2. Sammenligning af Oracle MySQL, Percona Server og MariaDB

  3. Hvordan kan jeg skifte fra SQL Server Windows-tilstand til blandet tilstand (SQL Server 2008)?

  4. JDBC ResultSet getDate mister præcision