Арифметика с датами

Средний уровень SQL Server

Ginger Grant

Instructor

DATEPART

DATEPART определяет, какую часть даты нужно вычислить. Часто используемые сокращения:

  • DD — день
  • MM — месяц
  • YY — год
  • HH — час
Средний уровень SQL Server

Основные функции работы с датами в T-SQL

  • DATEADD(): прибавляет или вычитает значение даты/времени
    • Всегда возвращает дату
  • DATEDIFF(): вычисляет разницу между двумя значениями даты/времени
    • Всегда возвращает число
Средний уровень SQL Server

DATEADD

Чтобы прибавить или вычесть значение и получить новую дату, используйте DATEADD()

DATEADD (DATEPART, number, date) 
  • DATEPART: единица измерения (DD, MM и т. д.)
  • number: целое число для прибавления
  • date: значение даты/времени
Средний уровень SQL Server

Арифметика дат с DATEADD (I)

Какая дата наступит через 30 дней после 21 июня 2020 года?

SELECT DATEADD(DD, 30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-07-21 00:00             | 
+-----------------------------+
Средний уровень SQL Server

Арифметика дат с DATEADD (II)

Какая дата была за 30 дней до 21 июня 2020 года?

SELECT DATEADD(DD, -30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-05-22 00:00             | 
+-----------------------------+
Средний уровень SQL Server

DATEDIFF

Возвращает дату после прибавления или вычитания числа

DATEDIFF (datepart, startdate, enddate) 
  • datepart: единица измерения (DD, MM и т. д.)
  • startdate: начальное значение даты
  • enddate: конечное значение даты/времени
Средний уровень SQL Server

Арифметика дат с DATEDIFF

SELECT DATEDIFF(DD, '2020-05-22', '2020-06-21') AS Difference1,
       DATEDIFF(DD, '2020-07-21', '2020-06-21') AS Difference2
+--------------------+--------------------+ 
|Difference1         |Difference2         |
+--------------------+--------------------+
|30                  |-30                 |
+--------------------+--------------------+
Средний уровень SQL Server

Давайте потренируемся!

Средний уровень SQL Server

Preparing Video For Download...