Изменить запрос SQL, чтобы получать данные только за последние 2 месяца - PullRequest
0 голосов
/ 24 июня 2019

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

SELECT COUNT(*) 
FROM course_participants 
WHERE course_id = courses.id 
WHERE YEAR(created) = 2019) 

Теперь он получает результаты за текущий год, мне нужно получить результаты за последние 2 месяца.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 24 июня 2019

Вы можете попробовать ниже -

SELECT COUNT(*) FROM course_participants 
    WHERE created>=now()-interval 2 month
1 голос
/ 24 июня 2019

Если вы хотите, чтобы ваш запрос возвращал записи за последние два месяца динамически, то вы можете добавить выражение DATE_ADD в ваше предложение WHERE:

SELECT COUNT(*) FROM course_participants WHERE course_id = courses.id and
   created > DATE_ADD(CURDATE(), INTERVAL -2 MONTH)

Это принимает текущую дату и возвращается на 2 месяца.Вы можете посмотреть документацию по функции здесь.

1 голос
/ 24 июня 2019

Вы можете использовать функцию Месяц :

SELECT 
  COUNT(*) 
FROM 
  course_participants 
WHERE 
  course_id = courses.id and
  YEAR(created) = 2019 and 
  MONTH(created) in (4,5)

Если дата не должна быть фиксированной, а зависеть от текущей даты.Вы можете проверить Dateadd-Function .

0 голосов
/ 24 июня 2019

Вы можете вычесть 2 месяца из текущей даты.

SELECT COUNT(*) FROM course_participants WHERE course_id = courses.id AND created >= DATE_SUB(CURRENT_DATE, INTERVAL 2 MONTH)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...