Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

DATENAME() Примери в SQL Server

В SQL Server, T-SQL DATENAME() функцията връща символен низ, който представлява посочената част от дата на посочената дата . Например можете да подадете 2021-01-07 и SQL Server да върне само частта от месеца (January ).

Типът на връщане за DATENAME() е nvarchar .

Примери по-долу.

Синтаксис

DATENAME() синтаксисът е така:

DATENAME ( datepart , date )

Където datepart е част от date (стойност за дата или час), за която ще бъде върнат символен низ.

Пример 1

Ето един основен пример, при който връщам компонента месец от дата.

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

Резултат:

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

Пример 2

В този пример присвоявам дата на променлива, след което използвам множество екземпляри на DATEPART() за да извлечете различни части от тази дата.

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;

Резултат:

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

Пример 3

Можете също да извлечете различните части от времето от датата.

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;

Резултат:

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

Пример 4

Можете също да извлечете TZoffset и ISO_WEEK дата част.

 TZoffset се връща като брой минути (подписан). ISO_WEEK datepart се отнася до системата за дата седмица на ISO (част от стандарта ISO 8601), която е система за номериране на седмици.

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

Резултат:

+--------------------+------------+
| Time Zone Offset   | ISO_WEEK   |
|--------------------+------------|
| +08:00             | 22         |
+--------------------+------------+

В този пример зададох датата на datetimeoffset формат, който включва изместването на часовата зона. TZoffset се връща след минути.

Резултатите от DATENAME() често ще прилича на резултатите от DATEPART() (поради това, че повечето части от датата са числови). Въпреки това DATEPART() връща цяло число за разлика от символен низ. Следователно DATEPART() ще върне месеците (и компонента за деня от седмицата) в числова форма (напр. 1). вместо January ).

Получаване на краткото име на месеца

Ако имате нужда от името на месеца, но в неговата съкратена форма за съкращение от 3 букви (например Jan вместо January ), вижте моята статия 5 начина да получите краткото име на месеца от дата в 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. TSQL PIVOT МНОГО КОЛОНИ

  2. Търсене на текст в съхранена процедура в SQL Server

  3. Преобразувайте „datetime2“ в „datetime“ в SQL Server (T-SQL примери)

  4. Ограничения на SQL Server Express

  5. Защо SQL Server автоматично игнорира празното пространство в края?