sql >> Database >  >> RDS >> Sqlserver

DATEPART() Voorbeelden in SQL Server

In SQL Server is de T-SQL DATEPART() functie retourneert een geheel getal dat het opgegeven datepart vertegenwoordigt van de opgegeven datum . U kunt bijvoorbeeld doorgeven in 2021-01-07 en laat SQL Server alleen het jaargedeelte retourneren (2021 ).

U kunt ook het tijdgedeelte extraheren. U kunt bijvoorbeeld doorgeven in 2018-06-02 08:24:14.3112042 en laat SQL Server alleen het uurgedeelte retourneren (8 ).

Voorbeelden hieronder.

Syntaxis

Ten eerste de syntaxis. De DATEPART() syntaxis gaat als volgt:

DATEPART ( datepart , date )

Waar datepart is het deel van date (een datum- of tijdwaarde) waarvoor een geheel getal wordt geretourneerd.

Voorbeeld 1

Hier is een eenvoudig voorbeeld waarbij ik de jaarcomponent van een datum terugstuur.

SELECT DATEPART(year, '2021-01-07') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| 2021     |
+----------+

Voorbeeld 2

In dit voorbeeld wijs ik een datum toe aan een variabele, dan gebruik ik meerdere instanties van DATEPART() om verschillende delen van die datum op te halen.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATEPART(year, @date) AS Year,
    DATEPART(quarter, @date) AS Quarter,
    DATEPART(month, @date) AS Month,
    DATEPART(dayofyear, @date) AS 'Day of Year',
    DATEPART(day, @date) AS Day,
    DATEPART(week, @date) AS Week,
    DATEPART(weekday, @date) AS Weekday;

Resultaat:

+--------+-----------+---------+---------------+-------+--------+-----------+
| Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
|--------+-----------+---------+---------------+-------+--------+-----------|
| 2018   | 2         | 6       | 153           | 2     | 22     | 7         |
+--------+-----------+---------+---------------+-------+--------+-----------+

Voorbeeld 3

Je kunt ook de verschillende tijdsdelen uit de datum halen.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DATEPART(hour, @date) AS Hour,
    DATEPART(minute, @date) AS Minute,
    DATEPART(second, @date) AS Second,
    DATEPART(millisecond, @date) AS Millsecond,
    DATEPART(microsecond, @date) AS Microsecond,
    DATEPART(nanosecond, @date) AS Nanosecond;

Resultaat:

+--------+----------+----------+--------------+---------------+--------------+
| Hour   | Minute   | Second   | Millsecond   | Microsecond   | Nanosecond   |
|--------+----------+----------+--------------+---------------+--------------|
| 8      | 24       | 14       | 311          | 311204        | 311204200    |
+--------+----------+----------+--------------+---------------+--------------+

Voorbeeld 4

U kunt ook de TZoffset . ophalen en de ISO_WEEK datepart.

De TZoffset wordt geretourneerd als het aantal minuten (ondertekend). De ISO_WEEK datepart verwijst naar het ISO-week-datumsysteem (onderdeel van de ISO 8601-standaard) dat een nummeringssysteem is voor weken.

DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';
SELECT 
    DATEPART(TZoffset, @date) AS 'Time Zone Offset',
    DATEPART(ISO_WEEK, @date) AS 'ISO_WEEK';

Resultaat:

+--------------------+------------+
| Time Zone Offset   | ISO_WEEK   |
|--------------------+------------|
| 480                | 22         |
+--------------------+------------+

In dit voorbeeld stel ik de datum in op een datetimeoffset formaat, inclusief de tijdzone-offset. De TZoffset wordt binnen enkele minuten geretourneerd.

Een snel alternatief

T-SQL biedt ook een meer beknopte manier om de dag-, maand- of jaarcomponenten van een datum te retourneren met de DAY() , MONTH() en YEAR() functies.

Ze werken als volgt:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT 
    DAY(@date) AS DAY,
    MONTH(@date) AS MONTH,
    YEAR(@date) AS YEAR;

Resultaat:

+-------+---------+--------+
| DAY   | MONTH   | YEAR   |
|-------+---------+--------|
| 2     | 6       | 2018   |
+-------+---------+--------+

De naam van de maand of dag ophalen

Als u de naam van de maand of de dag nodig heeft, gebruikt u de DATENAME() in plaats daarvan functioneren. Deze functie retourneert de resultaten als een tekenreeks en u kunt de maand en weekdag op naam retourneren. Hier zijn enkele DATENAME() voorbeelden om te laten zien wat ik bedoel.


  1. MariaDB Connector/Python Beta nu beschikbaar

  2. Als verklaring binnen Where-clausule

  3. 3 manieren om de naam van de maand uit een datum te halen in SQL Server (T-SQL)

  4. De implementatie van Amazon Auroras Multi-AZ begrijpen