sql >> Databáze >  >> RDS >> Sqlserver

Příklady DATEPART() v SQL Server

Na serveru SQL Server T-SQL DATEPART() funkce vrátí celé číslo, které představuje zadanou část data zadaného data . Můžete například předat 2021-01-07 a SQL Server vrátí pouze část roku (2021 ).

Můžete také extrahovat časovou část. Můžete například předat 2018-06-02 08:24:14.3112042 a SQL Server vrátí pouze hodinovou část (8 ).

Příklady níže.

Syntaxe

Za prvé, syntaxe. DATEPART() syntaxe vypadá takto:

DATEPART ( datepart , date )

Kde datepart je součástí date (hodnota data nebo času), pro které bude vráceno celé číslo.

Příklad 1

Zde je základní příklad, kdy vrátím komponentu roku z data.

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

Výsledek:

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

Příklad 2

V tomto příkladu přiřadím datum proměnné a poté použiji více instancí DATEPART() k načtení různých částí tohoto data.

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;

Výsledek:

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

Příklad 3

Můžete také načíst různé časové části z data.

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;

Výsledek:

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

Příklad 4

Můžete také načíst TZoffset a ISO_WEEK datepart.

 TZoffset se vrátí jako počet minut (podepsaný). ISO_WEEK datepart odkazuje na systém týdenního data ISO (součást normy ISO 8601), což je systém číslování týdnů.

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';

Výsledek:

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

V tomto příkladu jsem nastavil datum na datetimeoffset formát, který zahrnuje posun časového pásma. TZoffset se vrátí za několik minut.

Rychlá alternativa

T-SQL také nabízí stručnější způsob, jak vrátit komponenty dne, měsíce nebo roku z data pomocí DAY() , MONTH() a YEAR() funkce.

Fungují takto:

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

Výsledek:

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

Získání názvu měsíce nebo názvu dne

Pokud potřebujete získat název měsíce nebo dne, použijte DATENAME() místo toho funkci. Tato funkce vrací výsledky jako znakový řetězec a podle názvu můžete vrátit měsíc a den v týdnu. Zde jsou nějaké DATENAME() příklady, které demonstrují, co mám na mysli.


  1. Android - Zobrazení uživatelského jména z databáze sqlite po přihlášení v textView

  2. Oracle SQL – součet a seskupovat data podle týdne

  3. ScaleGrid je nyní k dispozici v regionu Sydney AWS

  4. Instalace Oracle 12c Enterprise Edition na Windows 7