Перейти к содержимому

Как вытащить месяц из даты в sql

  • автор:

Данные за текущий месяц, текущую неделю, предыдущий месяц

Где названия таблиц, полей, где ваши пробные запросы. Пока на ваш вопрос ответ один — написать mysql запрос!

8 авг 2013 в 10:12
Зачем всё это? Проще написать: . WHERE MONTH( date ) = MONTH(NOW()) AND YEAR( date ) = YEAR(NOW())
8 авг 2013 в 10:26
Кстати, это выводятся данные за текущий месяц.
8 авг 2013 в 10:27

А если . WHERE WEEK(‘date’) = WEEK(NOW()) AND MONTH( date ) = MONTH(NOW()) AND YEAR( date ) = YEAR(NOW()) не работает? Такой оператор как бы тоже [имеется][1] [1]: dev.mysql.com/doc/refman/5.0/en/…

8 авг 2013 в 10:56

А за прошлый месяц: . WHERE MONTH( date ) = MONTH(NOW())-1 AND YEAR( date ) = YEAR(NOW()) правда могут быть проблемы с январем.

8 авг 2013 в 10:59

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Нашел информацию:
Данные за текущий месяц

. WHERE MONTH(`date`) = MONTH(NOW()) AND YEAR(`date`) = YEAR(NOW()) 

Данные за текущую неделю

. WHERE YEAR(`date`) = YEAR(NOW()) AND WEEK(`date`, 1) = WEEK(NOW(), 1) 

Данные за предыдущий месяц

. WHERE MONTH(`date`) = MONTH(DATE_ADD(NOW(), INTERVAL -1 MONTH)) AND YEAR(`date`) = YEAR(NOW()) 

Отслеживать
ответ дан 8 авг 2013 в 12:47
alekseidolganov alekseidolganov
935 3 3 золотых знака 9 9 серебряных знаков 19 19 бронзовых знаков

С данными за предыдущий месяц будут проблемы, если текущий месяц январь, лучше так:

. WHERE MONTH(`date`) = MONTH(DATE_ADD(NOW(), INTERVAL -1 MONTH)) and YEAR(`date`) = YEAR(DATE_ADD(NOW(), INTERVAL -1 MONTH)) 

Отслеживать
ответ дан 22 янв 2021 в 3:05
Дмитрий Усенко Дмитрий Усенко
21 1 1 бронзовый знак

  • дата
  • mysql
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Функция 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

Техника извлечения месяца из даты не сильно отличается от получения года. Я отвечал на подобный вопрос вот тут. Также используется функция EXTRACT . Только вместо YEAR мы пишем MONTH :

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

MONTH (Transact-SQL)

Возвращает целое число, представляющее месяц указанной даты date.

Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в статье Типы данных и функции даты и времени (Transact-SQL).

Синтаксис

MONTH ( date ) 

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

date
Выражение, которое можно привести к значению типа time, date, smalldatetime, datetime, datetime2 или datetimeoffset. Аргумент date может быть выражением, выражением столбца, определяемой пользователем переменной или строковым литералом.

Тип возвращаемых данных

int

Возвращаемое значение

Функция MONTH возвращает то же значение, что и функция DATEPART (month, date).

Если дата date содержит только компонент времени, возвращаемое значение равно 1, базовому месяцу.

Примеры

Следующая инструкция возвращает значение 4 . Порядковый номер месяца.

SELECT MONTH('2007-04-30T01:01:01.1234567 -07:00'); 

Следующая инструкция возвращает значение 1900, 1, 1 . В качестве значения аргумента date задается число 0 . SQL Server интерпретируется 0 как 1 января 1900 г.

SELECT YEAR(0), MONTH(0), DAY(0); 

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

В приведенном ниже примере возвращается 4 . Порядковый номер месяца.

-- Uses AdventureWorks SELECT TOP 1 MONTH('2007-04-30T01:01:01.1234') FROM dbo.DimCustomer; 

В приведенном ниже примере возвращается 1900, 1, 1 . В качестве значения аргумента date задается число 0 . SQL Server интерпретируется 0 как 1 января 1900 г.

-- Uses AdventureWorks SELECT TOP 1 YEAR(0), MONTH(0), DAY(0) FROM dbo.DimCustomer; 

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

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