SQL Урок 10. Работа с временем

В данном уроке мы познакомимся как работать с датой и временем, посмотрим какие функции и типы данных позволят эффективно управляться с ними.Самой популярным типом для работы со временем является datetime. Рассмотрим какие функции нужны для работы с ним. Для того, чтобы изменить значение даты нужно использовать функцию DATEADD

1
DATEADD(единица_измерения_времени, количество_единиц, время)

Эта функция возвращает datetime, который равен время + количество_единиц * единица_измерения_времени. Приведем список единиц измерения времени:

  • Year — год
  • Quartet — квартал
  • Month — месяц
  • Day — день
  • Week — неделя
  • Hour — час
  • Second — секунда
  • Millisecond — миллисекунда

Для того чтобы получить текущую дату можно использовать CURRENT_TIMESTAMP. Таким образом для того, чтобы увеличить текущую дату на 14 дней необходимо написать:

1
DATEADD(DAY, 14, CURRENT_TIMESTAMP)

Аналогичный запрос:

1
DATEADD(WEEK, 2, CURRENT_TIMESTAMP)

Для того, чтобы узнать, какое количество времени пройдет между двумя датами можно использовать функцию DATEDIFF:

1
DATEDIFF (единица_измерения_времени , начальная_дата , конечная_дата)

Данная функция вернет временной интервал в указанной вами единицах измерения.
Для того, чтобы узнать сколько времени прошло с момента написания этой статьи до сегодняшнего дня в днях нужно применить следующий SQL — запрос:

1
DATEDIFF (DAY , CONVERT(datetime,'20120402'), CURRENT_TIMESTAMP)

Для того, чтобы получить какую — нибудь часть от времени можно применить функцию DATEPART.

1
DATEPART ( единица_измерения_времени , время )

Данная функция возвращает целое число, которое отвечает на вопрос «сколько?» относительно указанной в операторе даты. Допустим для того, чтобы узнать сколько сейчас часов надо использовать следующую конструкцию:

1
DATEPART ( HOUR , CURRENT_TIMESTAMP)

Данная функция позволяет получить только численно указанные значения у даты, а если мы хотим получить строковое представление, то нам необходимо использовать :

1
DATENAME ( единица_измерения_времени , время )

Таким образом для того, чтобы получить сегодняшнюю дату в строковом представлении:

1
2
3
4
SELECT 
DATENAME ( DAY , CURRENT_TIMESTAMP )+' '+
DATENAME ( MONTH , CURRENT_TIMESTAMP )+' '+
DATENAME ( YEAR , CURRENT_TIMESTAMP' )

Данный запрос вернет что — то похожее на «2 April 2012».

Категория: MySQL | Добавил: ghost_mod (29.09.2016)
Просмотров: 462 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: