Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

DATEPART() Przykłady w SQL Server

W SQL Server funkcja T-SQL DATEPART() funkcja zwraca liczbę całkowitą, która reprezentuje określoną datapart określonej daty . Na przykład możesz przekazać w 2021-01-07 i mieć SQL Server zwracać tylko część roku (2021 ).

Możesz także wyodrębnić część czasu. Na przykład możesz przekazać w 2018-06-02 08:24:14.3112042 i aby SQL Server zwracał tylko część godzinową (8 ).

Przykłady poniżej.

Składnia

Po pierwsze, składnia. DATEPART() składnia wygląda tak:

DATEPART ( datepart , date )

Gdzie datepart jest częścią date (wartość daty lub godziny), dla której zostanie zwrócona liczba całkowita.

Przykład 1

Oto podstawowy przykład, w którym zwracam składnik roku z daty.

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

Wynik:

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

Przykład 2

W tym przykładzie przypisuję datę do zmiennej, a następnie używam wielu wystąpień DATEPART() aby pobrać różne części tej daty.

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;

Wynik:

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

Przykład 3

Możesz także pobrać różne części czasu z daty.

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;

Wynik:

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

Przykład 4

Możesz także pobrać TZoffset i ISO_WEEK datapart.

TZoffset zwracany jest jako liczba minut (podpisany). ISO_WEEK datepart odnosi się do systemu dat tygodnia ISO (część normy ISO 8601), który jest systemem numeracji tygodni.

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

Wynik:

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

W tym przykładzie ustawiłem datę na datetimeoffset format, który obejmuje przesunięcie strefy czasowej. TZoffset jest zwracany w ciągu kilku minut.

Szybka alternatywa

T-SQL oferuje również bardziej zwięzły sposób zwracania składników dnia, miesiąca lub roku z daty za pomocą DAY() , MONTH() i YEAR() funkcje.

Działają tak:

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

Wynik:

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

Pobieranie nazwy miesiąca lub nazwy dnia

Jeśli potrzebujesz nazwy miesiąca lub dnia, użyj DATENAME() funkcja zamiast. Ta funkcja zwraca wyniki jako ciąg znaków i możesz zwrócić miesiąc i dzień tygodnia według nazwy. Oto kilka DATENAME() przykłady, aby pokazać, o co mi chodzi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W jakiej kolumnie należy umieścić indeks klastrowy?

  2. Utwórz widok w SQL Server 2017

  3. Zarządzaj współbieżnością transakcji za pomocą blokad w SQL Server

  4. Jak mogę ogólnie posortować kolumnę „Numer wersji” za pomocą zapytania SQL Server?

  5. SQL Server:Przykłady danych ciągu PIVOTing