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

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

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

Можете също да извлечете частта от време. Например можете да подадете 2018-06-02 08:24:14.3112042 и SQL Server да върне само часовата част (8 ).

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

Синтаксис

Първо, синтаксисът. DATEPART() синтаксисът е така:

DATEPART ( datepart , date )

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

Пример 1

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

ИЗБЕРЕТЕ ДАТАЧАСТ(година, '2021-01-07') КАТО Резултат;

Резултат:

+---------+| Резултат ||----------|| 2021 |+---------+

Пример 2

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

DECLARE @date datetime2 ='2018-06-02 08:24:14.3112042';ИЗБЕРЕТЕ DATEPART(година, @дата) КАТО Година, DATEPART(тримесечие, @дата) КАТО Тримесечие, DATEPART(месец, @дата) AS Месец, DATEPART(dayofyear, @date) КАТО „Ден от годината“, DATEPART(day, @date) КАТО ден, DATEPART(week, @date) КАТО седмица, DATEPART(day of week, @date) КАТО ден от седмицата;

Резултат:

+--------+-----------+--------+--------------- +-------+-------+-----------+| Година | Тримесечие | Месец | Ден от годината | Ден | Седмица | Делничен ден ||-------+-----------+--------+--------------+ -------+-------+----------|| 2018 г. | 2 | 6 | 153 | 2 | 22 | 7 |+-------+-----------+--------+--------------+ -------+-------+-----------+

Пример 3

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

DECLARE @date datetime2 ='2018-06-02 08:24:14.3112042';ИЗБЕРЕТЕ DATEPART(hour, @date) КАТО час, DATEPART(minute, @date) КАТО минута, DATEPART(second, @date) AS Второ, DATEPART(милисекунда, @дата) КАТО милисекунда, DATEPART(микросекунда, @дата) КАТО микросекунда, DATEPART(наносекунда, @дата) КАТО наносекунда;

Резултат:

+--------+-----------+----------+--------------+ ---------------+--------------+| Час | Минута | Второ | Милисекунда | Микросекунда | Наносекунда ||--------+----------+----------+--------------+- --------------+--------------|| 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';ИЗБЕРЕТЕ DATEPART(TZoffset, @date) КАТО 'Отместване на часовата зона', DATEPART(ISO_WEEK, @date) AS 'IS ';

Резултат:

+--------------------+------------+| Изместване на часовата зона | ISO_WEEK ||--------------------+-----------|| 480 | 22 |+-------------------+-----------+

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

Бърза алтернатива

T-SQL предлага и по-сбит начин за връщане на компонентите за ден, месец или година от дата с DAY() , MONTH() и YEAR() функции.

Те работят така:

DECLARE @date datetime2 ='2018-06-02 08:24:14.3112042';ИЗБЕРЕТЕ ДЕН(@date) КАТО ДЕН, МЕСЕЦ(@date) КАТО МЕСЕЦ, ГОДИНА(@date) КАТО ГОДИНА;

Резултат:

<пред>+-------+--------+-------+| ДЕН | МЕСЕЦ | ГОДИНА ||-------+--------+-------|| 2 | 6 | 2018 |+-------+-------+-------+

Получаване на името на месеца или името на деня

Ако трябва да получите името на месеца или деня, използвайте DATENAME() функция вместо това. Тази функция връща резултатите като низ от знаци и можете да върнете месеца и деня от седмицата по име. Ето някои DATENAME() примери, които да демонстрират какво имам предвид.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. сравняване на колона със списък със стойности в t-sql

  2. Проверете дали низът съдържа знаци с ударение в SQL?

  3. Как да променя SQL Server 2005 така, че да е чувствителен към главни букви?

  4. Използвайте FILEGROUP_NAME(), за да върнете името на файлова група в SQL Server

  5. Вземете AVG, пренебрегвайки Null или Zero стойности