Как получить предыдущие 6 месяцев записи в SQL? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть вопрос, чтобы выбрать предыдущие 6 месяцев записи в SQL? Может ли кто-нибудь проверить мой код, в какой части я ошибаюсь? Я использую браузер запросов MySQL. Спасибо.

Ниже моя кодировка:

SELECT id, title, contents, posted_date, action
FROM `announcement`
where posted_date >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0);

Ниже информация о моей базе данных:

enter image description here

На самом делеЯ просто хочу взять записи за последние 6 месяцев, как показано ниже:

enter image description here

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

В MySQL эквивалентом вашего кода будет:

SELECT id, title, contents, posted_date, action
FROM `announcement`
WHERE posted_date >= (curdate() - INTERVAL (1 - DAY(curdate()) DAY) - INTERVAL 6 MONTH;

Это внутреннее вычитание перемещает дату в начало текущего месяца. Затем вычитаются шесть месяцев.

0 голосов
/ 31 октября 2019

Если вы имеете в виду последние шесть месяцев от сейчас , просто используйте Now() и AddDate:

SELECT id, title, contents, posted_date, action
FROM `announcement`
where posted_date >= AddDate(Now(), interval -6 MONTH);

Это для MySQL, который вы сказали, что выusing.

Ваш код больше похож на T-SQL (MS SQL Server), но (DateDiff, DateAdd), кроме обратных галочек. Если вы используете MS SQL Server, это будет DateAdd и GetDate:

SELECT id, title, contents, posted_date, action
FROM announcement
where DateAdd(MONTH, -6, GetDate());
...