sql >> Database >  >> RDS >> Database

Hoe u het jaar uit een datum haalt in T-SQL

Probleem:

U wilt het jaartal uit een datumveld in een SQL Server-database halen.

Voorbeeld:

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

Id Voornaam Achternaam Geboortedatum
1 Jane Smith 2018-06-20
2 Gary Bruin 02-02-2010
3 Lora Adams 05-11-2014

Laten we het jaar halen uit de geboortedatum van elk kind.

Oplossing:

We gebruiken de YEAR() functie. Dit is de vraag die je zou schrijven:

SELECT FirstName,
       LastName,
       YEAR(BirthDate) AS BirthYear
FROM Children;

Dit is het resultaat van de zoekopdracht:

Voornaam Achternaam Geboortejaar
Jane Smith 2018
Gary Bruin 2010
Lora Adams 2014

Discussie:

Gebruik YEAR() van SQL Server functie als u het jaargedeelte uit een datum wilt halen. Deze functie heeft slechts één argument - een datum, in een van de datum- en tijd- of datumgegevenstypen. (In ons voorbeeld is de kolom BirthDate is een datum data type). Het argument kan een kolomnaam of een uitdrukking zijn. (In ons voorbeeld is het argument de BirthDate kolom.)

Het YEAR() functie retourneert een geheel getal. Voor Jane Smith , het retourneert het gehele getal 2018 vanaf de geboortedatum '2018-06-20' .


  1. Hoe een API-client te voorzien van 1.000.000 databaseresultaten?

  2. Rijen invoegen in een tabel met slechts één IDENTITEIT-kolom

  3. Voeg meerdere rijen in ZONDER het INSERT INTO ...-gedeelte van de instructie te herhalen?

  4. Waarom kan ik afhankelijke kolommen niet uitsluiten van `GROUP BY` als ik aggregeer met een sleutel?