loading..
Русский    English
18:14
листать

Функция DATEADD

Функция DATEADD (datepart, number, date) возвращает значение типа datetime, которое получается добавлением к дате date количества интервалов типа datepart, равного number (целое число).

Например, мы можем к заданной дате добавить любое число лет, дней, часов, минут и т. д.

Допустимые значения аргумента datepart приведены ниже в таблице и взяты из электронной документации к  Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server — Books On Line (BOL).

Datepart Допустимые сокращения
Year — год yy, yyyy
Quarter — квартал qq, q
Month — месяц mm, m
Dayofyear — день года dy, y
Day — день dd, d
Week — неделя wk, ww
Hour — час hh
Minute — минута mi, n
Second — секунда ss, s
Millisecond - миллисекунда ms

Пусть сегодня 28.10.2005, и мы хотим узнать, какой день будет через неделю. Мы можем написать:

Консоль
Выполнить
  1. SELECT DATEADD(day, 7, current_timestamp);

а можем и так:

Консоль
Выполнить
  1. SELECT DATEADD(ww, 1, current_timestamp);

В результате получим одно и то же значение; что-то типа 2005-11-04 00:11:28.683.

Однако мы не можем в этом случае написать:

Консоль
Выполнить
  1. SELECT DATEADD(mm, 1/4, current_timestamp);

и не потому, что четверть месяца не равна в точности неделе, а потому, что дробная часть значения аргумента datepart отбрасывается, и мы получим 0 вместо одной четвертой и, как следствие, текущий день.

Кроме того, мы можем использовать вместо CURRENT_TIMESTAMP функцию T-SQL GETDATE() с тем же самым эффектом. Наличие двух идентичных функций поддерживается, видимо, в ожидании последующего развития стандарта.

Пример 7.1.1

Определить, какой будет день через неделю после последнего полета.

Примечание:

В примерах данной главы используется база данных «Аэрофлот». Описание этой схемы и всех остальных схем, используемых в настоящее время на сайте для решения задач, можно найти в Примечании 1.

Консоль
Выполнить
  1. SELECT DATEADD(day, 7, (SELECT MAX(date) max_date
  2. FROM pass_in_trip
  3. )
  4. );

Применение подзапроса в качестве аргумента допустимо, так как этот подзапрос возвращает единственное значение типа datetime.

  • C.m.a.
    Музыкальный информационный портал. Тюнер для настройки гитары и баса.
    1mmtt.ru
  • Bosch nkn 645g14
    Мобильные телефоны, видео-, аудио- и бытовая техника. Условия оплаты.
    techmarkets.ru
Тэги:
ALL AVG battles CASE CAST CHAR CHARINDEX classes COALESCE Convert COUNT CTE DATEDIFF DATEPART DATETIME DELETE DISTINCT EXCEPT EXISTS EXTRACT FROM FULL JOIN GROUP BY Guadalcanal HAVING IN INNER JOIN insert INTERSECT ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX MIN MySQL NOT IN NULL ORDER BY Outcome outcomes OVER PARTITION BY pc PIVOT PostgreSQL printer product Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100