Как выделить год из даты в sql
Перейти к содержимому

Как выделить год из даты в sql

  • автор:

Функция EXTRACT

Функция EXTRACT извлекает отдельные части из даты или даты-времени.

Синтаксис

SELECT EXTRACT(что_извлечь FROM дата) FROM имя_таблицы WHERE условие

Вместо ‘что_извлечь’ можно написать, к примеру, DAY — тогда из даты будет извлечен день, или, к примеру, YEAR — тогда будет извлечен год. Если же я напишу так: YEAR_MONTH — то будет извлечен год и месяц (слитно, без разделителя). Если вам нужно извлекать несколько частей не слитно, а используя разделитель — используйте DATE_FORMAT .

Форматы вывода

  • SECOND секунды
  • MINUTE минуты
  • HOUR часы
  • DAY дни
  • MONTH месяцы
  • YEAR года
  • MINUTE_SECOND минуты и секунды
  • HOUR_MINUTE часы и минуты
  • DAY_HOUR дни и часы
  • YEAR_MONTH года и месяцы
  • HOUR_SECOND

    часы, минуты, секунды

  • DAY_MINUTE

    дни, часы, минуты

  • DAY_SECOND

    дни, часы, минуты, секунды

Таблицы для примеров

таблица users

id
айди
name
имя
date
дата рождения
1 user1 1988-03-01
2 user2 1989-04-02
3 user3 1990-05-03

Пример

В данном примере при выборке из таблицы из даты извлекается день месяца:

SELECT *, EXTRACT(DAY FROM date) as day FROM users

Результат выполнения кода:

id
айди
name
имя
date
дата рождения
day
день
1 user1 1988-03-01 1
2 user2 1989-04-02 2
3 user3 1990-05-03 3

Пример

В данном примере при выборке из таблицы из даты извлекается год:

SELECT *, EXTRACT(YEAR FROM date) as year FROM users

Результат выполнения кода:

id
айди
name
имя
date
дата рождения
year
год
1 user1 1988-03-01 1988
2 user2 1989-04-02 1989
3 user3 1990-05-03 1990

Пример

В данном примере при выборке из таблицы из даты извлекается год и месяц (слитно):

SELECT *, EXTRACT(YEAR_MONTH FROM date) as yearmonth FROM users

Результат выполнения кода:

id
айди
name
имя
date
дата рождения
yearmonth
год и месяц
1 user1 1988-03-01 198803
2 user2 1989-04-02 198904
3 user3 1990-05-03 199005

Смотрите также

  • функцию DATE ,
    которая извлекает дату из даты-времени
  • функцию YEAR ,
    которая извлекает год из даты
  • функцию MONTH ,
    которая извлекает месяц из даты
  • функцию DAY ,
    которая извлекает день из даты

Как правильно получить год из даты sql

Здравствуйте, мне нужно получить разницу между двумя датами с помощью функции select DATEDIFF(year, 1997-01-01, getdate()) но функция возвращает не верное значение, плохо отрабатывает функция, которая вычисляет год из даты (т.е. 2й аргумент), если выполнить функцию year(1997-01-01) то она вернет 1905, в моей таблице есть поле DateOfBurn и значение его date (при заполнении я только ввожу «1990-02-02») и есть вычисляемый столбец Age DATEDIFF(year, DateOfBurn, getdate()) Помогите пожалуйста составить запрос правильно.

Отслеживать

8,531 2 2 золотых знака 22 22 серебряных знака 35 35 бронзовых знаков

задан 8 сен 2016 в 7:25

simply good simply good

566 1 1 золотой знак 7 7 серебряных знаков 20 20 бронзовых знаков

Функция YEAR

Функция YEAR извлекает номер года из даты. Дата может быть в формате date или datetime.

Синтаксис

SELECT YEAR(дата) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица users

id
айди
name
имя
date
дата рождения
1 user1 1988-03-01
2 user2 1989-04-02
3 user3 1990-05-03

Пример

В данном примере при выборке из таблицы из даты извлекается год:

SELECT *, YEAR(date) as year FROM users

Результат выполнения кода:

id
айди
name
имя
date
дата
year
год
1 user1 1988-03-01 1988
2 user2 1989-04-02 1989
3 user3 1990-05-03 1990

Смотрите также

  • функцию DAY ,
    которая извлекает день из даты
  • функцию MONTH ,
    которая извлекает месяц из даты
  • функцию DATE ,
    которая извлекает дату из даты-времени
  • функцию HOUR ,
    которая извлекает часы из времени
  • функцию MINUTE ,
    которая извлекает минуты из времени
  • функцию SECOND ,
    которая извлекает секунды из времени

Как получить год из даты sql

Для извлечения года из даты в PostgreSQL используется функция EXTRACT . Тут всё достаточно тривиально, потому сразу приведу пример её использования:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2022-08-26 12:24:56'); 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *