НачатьНачать бесплатно

Округление дат

В SQL Server нет встроенного способа округлить дату вниз до месяца, часа или минуты. Однако это можно сделать, комбинируя функции DATEADD() и DATEDIFF().

Чтобы округлить дату 1914-08-16 вниз до года, нужно вызвать DATEADD(YEAR, DATEDIFF(YEAR, 0, '1914-08-16'), 0).

Чтобы округлить дату вниз до месяца, нужно вызвать DATEADD(MONTH, DATEDIFF(MONTH, 0, '1914-08-16'), 0).

Этот подход работает и для ряда других частей даты.

Это упражнение является частью курса

Анализ временных рядов в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Используйте DATEADD() и DATEDIFF() совместно с частями даты, чтобы округлить время вниз до дня, часа и минуты.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

DECLARE
	@SomeTime DATETIME2(7) = '2018-06-14 16:29:36.2248991';

-- Fill in the appropriate functions and date parts
SELECT
	DATEADD(___, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
	___(___, ___(___, 0, @SomeTime), 0) AS RoundedToHour,
	___(___, ___(___, 0, @SomeTime), 0) AS RoundedToMinute;
Редактировать и запускать код