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

DATENAME() Przykłady w SQL Server

W SQL Server, T-SQL DATENAME() funkcja zwraca ciąg znaków, który reprezentuje określoną datapart określonej daty . Na przykład możesz przekazać w 2021-01-07 i mieć SQL Server zwracać tylko część miesiąca (January ).

Zwracany typ dla DATENAME() to nvarchar .

Przykłady poniżej.

Składnia

DATENAME() składnia wygląda tak:

DATENAME ( datepart , date )

Gdzie datepart jest częścią date (wartość daty lub godziny), dla której zostanie zwrócony ciąg znaków.

Przykład 1

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

SELECT DATENAME(month, '2021-01-07') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| January  |
+----------+

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 
    DATENAME(year, @date) AS Year,
    DATENAME(quarter, @date) AS Quarter,
    DATENAME(month, @date) AS Month,
    DATENAME(dayofyear, @date) AS 'Day of Year',
    DATENAME(day, @date) AS Day,
    DATENAME(week, @date) AS Week,
    DATENAME(weekday, @date) AS Weekday;

Wynik:

+--------+-----------+---------+---------------+-------+--------+-----------+
| Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
|--------+-----------+---------+---------------+-------+--------+-----------|
| 2018   | 2         | June    | 153           | 2     | 22     | Saturday  |
+--------+-----------+---------+---------------+-------+--------+-----------+

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 
    DATENAME(hour, @date) AS Hour,
    DATENAME(minute, @date) AS Minute,
    DATENAME(second, @date) AS Second,
    DATENAME(millisecond, @date) AS Millsecond,
    DATENAME(microsecond, @date) AS Microsecond,
    DATENAME(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 
    DATENAME(TZoffset, @date) AS 'Time Zone Offset',
    DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';

Wynik:

+--------------------+------------+
| Time Zone Offset   | ISO_WEEK   |
|--------------------+------------|
| +08:00             | 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.

Wyniki DATENAME() często będą przypominać wyniki z DATEPART() (ze względu na to, że większość części daty jest numeryczna). Jednak DATEPART() zwraca liczbę całkowitą, a nie ciąg znaków. Dlatego DATEPART() zwróci miesiące (i składnik dnia tygodnia) w postaci numerycznej (np. 1 zamiast January ).

Pobieranie krótkiej nazwy miesiąca

Jeśli potrzebujesz nazwy miesiąca, ale w formie skróconej, składającej się z 3 liter (na przykład Jan zamiast January ), zapoznaj się z moim artykułem 5 sposobów na uzyskanie krótkiej nazwy miesiąca z daty w SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest możliwe, aby klauzula SQL Output zwróciła kolumnę, która nie jest wstawiana?

  2. Jak uruchomić procedurę składowaną na serwerze sql co godzinę?

  3. Nie można znaleźć kolumny dbo, funkcji zdefiniowanej przez użytkownika lub agregacji dbo.Splitfn lub nazwa jest niejednoznaczna

  4. Różnica między liczbami, liczbami zmiennoprzecinkowymi i dziesiętnymi w SQL Server

  5. Dowiedz się, na jakim systemie operacyjnym działa program SQL Server (przykład T-SQL)