SQL | Функции даты

Опубликовано: 19 Августа, 2021

В SQL даты сложны для новичков, так как при работе с базой данных формат даты в таблице должен совпадать с датой ввода для вставки. В различных сценариях вместо даты используется datetime (время также связано с датой).
В MySql функции даты по умолчанию:

  • СЕЙЧАС (): возвращает текущую дату и время. Пример:
     ВЫБЕРИТЕ СЕЙЧАС ();
    

    Выход:

     2017-01-13 08:03:52
    
  • CURDATE () : возвращает текущую дату. Пример:
     ВЫБРАТЬ КУРДАТУ ();
    

    Выход:

     2017-01-13
    
  • CURTIME (): возвращает текущее время. Пример:
     ВЫБЕРИТЕ CURTIME ();
    

    Выход:

     08:05:15
    
  • DATE () : извлекает часть даты из даты или выражения даты / времени. Пример:
    Для приведенной ниже таблицы под названием «Тест»

    Идентификатор Имя Время рождения
    4120 Pratik 1996-09-26 16: 44: 15.581
     ВЫБЕРИТЕ имя, ДАТУ (время рождения) как дату рождения из теста;
    

    Выход:

    Имя Дата рождения
    Pratik 1996-09-26
  • EXTRACT (): возвращает одну часть даты / времени. Синтаксис:
     ВЫПИСКА (дата ФОРМЫ ЕДИНИЦЫ);
    

    Можно рассмотреть несколько единиц, но используются только некоторые, например:
    МИКРОСЕКУНДА, СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД и т. Д.
    А «дата» - допустимое выражение даты.

    Пример:
    Для приведенной ниже таблицы под названием «Тест»

    Идентификатор Имя Время рождения
    4120 Pratik 1996-09-26 16: 44: 15.581

    Запросы

    •  ВЫБЕРИТЕ имя, выписку (ДЕНЬ ИЗ ВРЕМЕНИ Рождения) КАК ДЕНЬ Рождения ИЗ теста;
      

      Выход:

      Имя День рождения
      Pratik 26
    •  ВЫБЕРИТЕ имя, выписку (ГОД ОТ ВРЕМЕНИ Рождения) КАК ГОД Рождения ИЗ Теста;
      

      Выход:

      Имя Год рождения
      Pratik 1996 г.
    •  ВЫБЕРИТЕ имя, извлечение (ВТОРАЯ ОТ ВРЕМЕНИ Рождения) КАК «Вторая секунда из теста»;
      

      Выход:

      Имя Рождение Второе
      Pratik 581
  • DATE_ADD (): добавляет указанный интервал времени к дате
    Синтаксис:



     DATE_ADD (дата, ИНТЕРВАЛ тип выражения);
    

    Где, date - допустимое выражение даты, а expr - это номер интервала, который мы хотим добавить.
    и тип может быть одним из следующих:
    МИКРОСЕКУНДА, СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД и т. Д.

    Пример:
    Для приведенной ниже таблицы под названием «Тест»

    Идентификатор Имя Время рождения
    4120 Pratik 1996-09-26 16: 44: 15.581

    Запросы

    •  ВЫБЕРИТЕ Имя, DATE_ADD (Время рождения, ИНТЕРВАЛ 1 ГОД) КАК ИЗМЕНЕНИЕ ВРЕМЕНИ РОЖДЕНИЯ ИЗ теста;
      

      Выход:

      Имя РождениеВремяМодифицированный
      Pratik 1997-09-26 16: 44: 15.581
    •  ВЫБЕРИТЕ Имя, DATE_ADD (Время рождения, ИНТЕРВАЛ 30 ДНЕЙ) AS BirthDayModified FROM Test;
      

      Выход:

      Имя День рождения
      Pratik 1996-10-26 16: 44: 15.581
    •  ВЫБЕРИТЕ Имя, DATE_ADD (Время рождения, ИНТЕРВАЛ 4 ЧАСА) КАК «Час рождения», измененный из теста;
      

      Выход:

      Имя Рождение Второе
      Pratik 1996-10-26 20: 44: 15.581
  • DATE_SUB (): вычитает указанный временной интервал из даты. Синтаксис DATE_SUB такой же, как DATE_ADD, разница только в том, что DATE_SUB используется для вычитания заданного интервала даты.
  • DATEDIFF (): возвращает количество дней между двумя датами.
     РАЗНДАТ (дата1, дата2);
    date1 & date2- выражение даты / времени
    

    Пример:

     ВЫБЕРИТЕ DATEDIFF ('2017-01-13', '2017-01-03') AS DateDiff;
    

    Выход:

    DateDiff
    10
  • DATE_FORMAT (): отображает дату и время в разных форматах.
     ДАТА_ФОРМАТ (дата, формат);
    

    date - допустимая дата, а формат определяет выходной формат даты / времени. Можно использовать следующие форматы:

    • % a-Сокращенное название дня недели (вс-сб)
    • % b-Сокращенное название месяца (январь-декабрь)
    • % c-месяц, числовой (0-12)
    • % D-День месяца с английским суффиксом (0, 1, 2, 3)
    • % d-День месяца, числовой (00-31)
    • % e-День месяца, числовой (0-31)
    • % f-микросекунд (000000-999999)
    • % H-Hour (00–23)
    • % h-час (01–12)
    • % I-час (01–12)
    • % i-минут, числовое (00-59)
    • % j-День года (001-366)
    • % k-час (0–23)
    • % l-час (1–12)
    • % M-название месяца (январь-декабрь)
    • % m-месяц, числовой (00-12)
    • % p-AM или PM
    • % r-Time, 12-часовой (чч: мм: сс, за которым следует AM или PM)
    • % S-секунд (00-59)
    • % s-секунд (00-59)
    • % T-Time, 24 часа (чч: мм: сс)
    • % U-неделя (00-53), где воскресенье - первый день недели
    • % u-неделя (00-53), где понедельник - первый день недели
    • % V-неделя (01-53), где воскресенье - первый день недели, используется с% X
    • % v-Week (01-53), где понедельник - первый день недели, используется с% x
    • % W-название дня недели (воскресенье-суббота)
    • % w-День недели (0 = воскресенье, 6 = суббота)
    • % X-Year для недели, где воскресенье - первый день недели, четыре цифры, используемые с% V
    • % x-Год для недели, где понедельник - первый день недели, четыре цифры, используется с% v
    • % Y-год, числовое, четыре цифры
    • % y - год, числовое, две цифры

    Пример:

     DATE_FORMAT (СЕЙЧАС (), '% d% b% y')
    

    Результат:

     13 янв 17
    

Эта статья предоставлена Pratik Agarwal . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.