Я вижу проблему с вашим столбцом job_posted_date
.Возможно, вы храните текстовые даты там.Предполагая, что нет, и это истинный столбец даты, вы можете попробовать этот запрос:
SELECT
c.company_logo,
j.company_name,
j.job_title,
j.job_posted_date
FROM company c
INNER JOIN jobs j
ON j.company_name = c.company_name
WHERE
j.category = 'it Jobs' AND
j.job_posted_date BETWEEN '2018-09-01' AND '2018-10-01'
ORDER BY
j.job_posted_date DESC;
Обратите внимание, что я сравниваю с действительными литералами даты MySQL, такими как '2018-09-01
'.Формат, который вы использовали, не будет работать.
Если столбец job_posted_date
на самом деле содержит текст даты в формате DD-MM-YYYY
, то вам придется использовать STR_TO_DATE
чтобы сначала преобразовать их:
SELECT
c.company_logo,
j.company_name,
j.job_title,
j.job_posted_date
FROM company c
INNER JOIN jobs j
ON j.company_name = c.company_name
WHERE
j.category = 'it Jobs' AND
STR_TO_DATE(j.job_posted_date, '%d-%m-%Y') BETWEEN '2018-09-01' AND '2018-10-01'
ORDER BY
j.job_posted_date DESC;
Мораль этой истории заключается в том, чтобы всегда использовать правильный столбец даты при хранении информации о дате в MySQL.И всегда сравнивайте действительные литералы даты / времени с этими столбцами.