sql >> Database >  >> RDS >> Database

Datum- en tijdnotaties wijzigen in T-SQL

Probleem:

U wilt de opmaak van een datumveld of waarde in een SQL Server-database wijzigen.

Voorbeeld:

Onze database heeft een tabel met de naam Patient met gegevens in de kolommen Id , FirstName , LastName , en RegistrationDate .

Id Voornaam Achternaam Registratiedatum
1 Jane Willems 2019-06-20
2 Gabriël Bruin 02-02-2019
3 Lora Volks 05-11-2016

Laten we het formaat van de registratiedatum van elke patiënt wijzigen. We zetten eerst de naam van de weekdag, gevolgd door de maand dag en naam en een jaartal van 4 cijfers (bijv. "vrijdag 27 december 2019").

Oplossing:

We gebruiken de FORMAT()-functie om het formaat van de datum in de RegistrationDate te wijzigen kolom.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy')
          AS FormattedRegistrationDate
FROM Patient;

Dit is het resultaat van de zoekopdracht:

Voornaam Achternaam FormattedRegistrationDate
Jane Willems Donderdag 20 juni 2019
Gabriël Bruin Zaterdag 2 februari 2019
Lora Volks Zaterdag 5 november 2016

Discussie:

We kunnen wijzigen hoe een bepaalde datum wordt weergegeven met de functie FORMAT(). Deze functie heeft twee verplichte argumenten en één optioneel argument. In ons voorbeeld hebben we alleen de twee verplichte argumenten gebruikt. De eerste is een datum, die kan komen uit een datum/tijd/datum/tijd-kolom of een uitdrukking die een datum of tijd retourneert. (In ons voorbeeld gebruiken we de kolom RegistrationDate .) Het tweede argument is een string die de nieuwe datumnotatie bevat. In ons voorbeeld gebruikten we 'dddd, dd MMMM, yyyy' :

  • dddd – De naam van de dag van de week.
  • d – De dag van de maand, van 1 tot 31.
  • MMMM – De volledige naam van de maand.
  • jjjj – Het jaartal van vier cijfers.

De onderstaande tabel geeft meer specificaties voor datum/tijd-indelingen:

specificatie beschrijving
d Dag in het bereik 1-31
dd Dag in het bereik 01-31
ddd De afgekorte naam van de dag van de week
dddd De volledige naam van de dag van de week
M Maand van 1 tot 12
MM Maand van 01 tot 12
MMM De afgekorte naam van de maand
MMMM De volledige naam van de maand
j 2-cijferig jaartal, van 0 tot 99
jj 2-cijferig jaartal van 00 tot 99
jjjj 4-cijferig jaar
g Era (bijv. AD)
u Uur van 1 tot 12 (12-uurs klok)
hh Uur van 01 tot 12 (12-uurs klok)
H Uur van 0 tot 23 (24-uurs klok)
HH Uur van 00 tot 23 (24-uurs klok)
m Minuut van 0 tot 59
mm Minuten van 00 tot 59
s Tweede van 0 tot 59
ss Tweede van 00 tot 59
t Eerste teken van AM of PM (bijv. 9A, 5P)
tt AM of PM
z Uren offset, zonder voorloopnul (bijv. +3)
zz Uren offset, met voorloopnul (bijv. +03)

U kunt meer informatie vinden in de Microsoft-documentatie voor standaard datum- en tijdnotaties en aangepaste notaties.

Als je deze datum wilt formatteren voor een specifieke taal en/of land, gebruik dan het derde optionele argument:cultuur . Dit argument is een tekenreeks die de cultuurcode voor een bepaalde regio of land bevat. (Cultuurcodes bestaan ​​uit een taalcode, een streepje en een landcode.) In het onderstaande voorbeeld gebruiken we de cultuurcode voor Duitsland, die de Duitse taalcode ('de') combineert met de landcode voor Duitsland ('DE'), d.w.z. 'de-DE'. De resulterende datum wordt weergegeven in het Duits en geformatteerd zoals een Duits publiek zou verwachten.

SELECT  FirstName,
        LastName,
        FORMAT(RegistrationDate ,'dddd, d MMMM, yyyy', 'de-DE')
          AS FormattedRegistrationDate
FROM Patient;

Dit is het resultaat van deze zoekopdracht:

Voornaam Achternaam Registratiedatum
Jane Willems Donnerdag, 20 juni 2019
Gabriël Bruin Samsdag, 2 februari 2019
Lora Volks Samstag, 5 november 2016

  1. LPAD() Functie in Oracle

  2. Kan SQLite-database niet openen vanuit SQLIte Helper Oncreate, wanneer OnCreate wordt geactiveerd door de database voor de eerste keer te openen

  3. Gegevens invoegen in tabellen die zijn gekoppeld door een externe sleutel

  4. PostgreSQL - dynamische waarde als tabelnaam