MySQL - между месяцами (а не отметкой времени) - PullRequest
1 голос
/ 19 января 2012

как мне сгенерировать запрос MySQL, чтобы получить строку между определенным месяцем например, строка для захвата, где месяц находится между 01/01 (1 января) и 01/06 (1 июня)

Ответы [ 5 ]

8 голосов
/ 19 января 2012

Я не уверен, если вы хотите захватить все строки с января по июнь, только строки до 1 июня или все строки с января по май. Вы можете использовать, например:

[...] WHERE `date_column` BETWEEN '2012-01-01' AND '2012-06-01'

, что дает вам все строки, включая 1 июня.

Используйте это, чтобы получить все строки за полные месяцы с января по июнь:

[...] WHERE YEAR(`date_column`)=2012 AND MONTH(`date_column`) BETWEEN 1 AND 6

(изменить на BETWEEN 1 AND 5 для января по май)

4 голосов
/ 19 января 2012

Если вы генерируете SQL-запрос на PHP, вы можете использовать МЕЖДУ

$date = date("Y") . '-' . date("m") . '-01';
$sql = "SELECT * 
FROM `table`
WHERE `date_column` BETWEEN '$date' AND '$date' + INTERVAL 1 MONTH - INTERVAL 1 DAY";

(я вычел один день, чтобы исключить данные первого дня следующего месяца)

Или вы можете использовать ЭКСТРАКТ

$month = 5;
$sql = 'SELECT * 
FROM `table`
WHERE EXTRACT(MONTH FROM `date_column`) = ' . $month;
2 голосов
/ 19 января 2012

Предполагая, что столбец в MySQL является правильным форматом (дата / дата / время), вы можете просто сравнить (>, <): </p>

SELECT somecolumn 
FROM sometable
WHERE datecolumn >= '2012-01-01' AND datecolumn < '2012-06-01'

Надеюсь, это поможет!

1 голос
/ 19 января 2012

Вы можете использовать функции month(), year() и day().Таким образом, ваш запрос будет выглядеть примерно так:

SELECT * FROM table WHERE month(date_field) >= 1 AND month(date_field) <= 6 AND year(date_field) = 2011

Поле date_ должно быть полем даты или даты-времени, если это временная метка, вам нужно использовать функцию FROM_UNIXTIMESTAMP, чтобы она выглядела как month(FROM_UNIXTIMESTAMP(timestamp_field))

0 голосов
/ 19 января 2012
SELECT
  *
FROM
  yourtable
WHERE
  date BETWEEN '2012-01-01' AND '2012-06-01';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...