sql >> Database >  >> RDS >> Sqlserver

Hoe de datum en tijd in SQL Server te formatteren?

In SQL Server kunt u de T-SQL FORMAT() . gebruiken functie om de datum en/of tijd te formatteren. Geef eenvoudig twee argumenten; de datum/tijd en het formaat dat moet worden gebruikt.

Het formaat wordt geleverd als een formaatstring. Een format string definieert hoe de output moet worden opgemaakt.

De FORMAT() functie accepteert ook een optioneel "cultuur" -argument, waarmee u een taal/landinstelling kunt specificeren waaraan de resultaten moeten voldoen.

Basisvoorbeeld

Hier is een eenvoudig voorbeeld van het gebruik van de FORMAT() functie om een ​​datum op te maken.

Onbewerkte datum

Ten eerste, hier is hoe de onbewerkte datum eruit ziet. Als we de volgende instructie uitvoeren:

SELECT GETDATE();

We krijgen een resultaat dat er ongeveer zo uitziet:

2018-05-03 02:36:54.480

Geformatteerde datum

Nu kunnen we de FORMAT() . gebruiken functie om die datum en tijd op te maken in ons voorkeursformaat. We zouden dit bijvoorbeeld kunnen doen:

SELECT FORMAT( GETDATE(), 'D');

Wat resulteert in dit:

Thursday, May 3, 2018

Dit is slechts een van de vele formaten die we konden kiezen. Hier is er nog een:

SELECT FORMAT( GETDATE(), 'd');

Wat resulteert in dit:

5/3/2018

De werkelijke resultaten zijn afhankelijk van de gebruikte cultuur. Standaard wordt de taal van de huidige sessie gebruikt, maar u kunt dit ook overschrijven met een derde (“cultuur”) argument.

Een landinstelling instellen

We zouden een derde argument ("cultuur") aan de bovenstaande code kunnen toevoegen om de landinstelling te bepalen die moet worden gebruikt voor de notatie van de datum.

We zouden dit bijvoorbeeld kunnen doen:

SELECT FORMAT( GETDATE(), 'd', 'en-gb');

Wat resulteert in dit:

03/05/2018

Hier is nog een voorbeeld:

SELECT FORMAT( GETDATE(), 'd', 'zh-cn');

Wat resulteert in dit:

2018/5/3

Als de cultuur argument niet is opgegeven, wordt de taal van de huidige sessie gebruikt.

Hier leest u hoe u de taal van de huidige sessie kunt vinden en hoe u deze instelt.

Houd er rekening mee dat de huidige taal meestal hetzelfde is als de standaardtaal van de gebruiker, maar dit is mogelijk niet het geval als de gebruiker de huidige taal heeft gewijzigd met SET LANGUAGE . Je kunt er in ieder geval ook achter komen wat de standaardtaal is.

Zoals je je misschien kunt voorstellen, kun je heel verschillende resultaten krijgen, afhankelijk van je huidige taal of de waarde van een "cultuur" -argument. Zie hoe taalinstellingen uw FORMAT()-resultaten kunnen beïnvloeden voor meer voorbeelden.

De maand/week/jaar extraheren

U kunt de FORMAT() . gebruiken functie om alleen het maandgedeelte van de datum, of de week of het jaar naar wens terug te geven.

Houd er rekening mee dat deze hoofdlettergevoelig zijn. Bijvoorbeeld MMM maakt de maand anders op dan mmm .

Maand

Voorbeeldcode voor het retourneren van het maanddeel:

SELECT FORMAT( GETDATE(), 'MMM');

Resultaat:

May

Jaar

Voorbeeldcode voor het retourneren van het jaardeel:

SELECT FORMAT( GETDATE(), 'yyyy');

Resultaat:

2018

Dag

Voorbeeldcode voor het retourneren van het dagdeel:

SELECT FORMAT( GETDATE(), 'dddd');

Resultaat:

Thursday

De tijd extraheren

U kunt ook de FORMAT() . gebruiken functie om de tijd in een gespecificeerd formaat terug te geven.

Hier is een voorbeeld:

SELECT FORMAT( GETDATE(), 'hh.mm');

Resultaat:

03.37

De AM/PM-aanduiding

Je kunt ook tt . toevoegen om de AM/PM-aanduiding op te nemen:

SELECT FORMAT( GETDATE(), 'hh.mm tt');

Resultaat:

03.37 AM

Opmaakstrings combineren

U kunt deze notatiereeksen ook combineren om uw eigen aangepaste datumnotatie te verstrekken. Voorbeeld:

SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');

Resultaat:

03.41 AM Thursday, 03 May, 2018

Naslaggegevens voor datum- en tijdnotatie

De volgende artikelen bevatten alle datum- en tijdnotatiespecificaties die kunnen worden gebruikt met de FORMAT() functie in SQL Server, samen met T-SQL-voorbeelden:

  • Standaard tekenreeksen voor datum- en tijdnotatie
  • Aangepaste tekenreeksen voor datum- en tijdnotatie

Dit zijn dezelfde datum- en tijdnotatiespecificaties die worden ondersteund door het .NET Framework (de FORMAT() functie is gebaseerd op het .NET Framework).

Referentie numerieke formaatspecificaties

De volgende artikelen bevatten alle numerieke indelingsspecificaties die u kunt gebruiken met de FORMAT() functie (d.w.z. voor het opmaken van getallen):

  • Standaard numerieke notatietekenreeksen
  • Aangepaste numerieke notatietekenreeksen

Dit zijn dezelfde numerieke formaatspecificaties die worden ondersteund door het .NET Framework.

Andere datumfuncties

T-SQL bevat ook een heleboel andere functies die u helpen onderdelen uit datums te extraheren. Deze omvatten functies zoals DAY() , MONTH() , YEAR() , DATEPART() , en DATENAME() .


  1. Trigger maken om SQL te loggen die van invloed is op de tabel?

  2. Hoe u de datum van gisteren in Oracle kunt krijgen

  3. voorwaardelijk meedoen in mysql

  4. hoe variabele van shellscript door te geven aan sqlplus