2015-09-10 1 views
4

Как я могу показать данные из тузда определенного месяца

$query = mysql_query(
 
     "SELECT id, BuyerName,BuyerEmail,TransactionID,DateTime FROM `order` 
 
     WHERE DateTime="2015 AND 08""; LIMIT $start, $per_page" 
 
     ) 
 
or die(mysql_error());

Я пытаюсь сделать запрос, чтобы показать определенный месяц и года.

+0

как ваша таблица выглядит? что делает запрос так, как сейчас? – hoijui

+0

@hoijui sintax error это показывает – M0rtiis

+0

Мой ответ не сработал для вас? –

ответ

2

Вы можете использовать MySQL встроенный в YEAR и MONTH функции, такие как:

SELECT `id`, `BuyerName`,`BuyerEmail`,`TransactionID`,`DateTime` 
FROM `order` WHERE YEAR(DATE(`DateTime`))=2015 AND MONTH(DATE(`DateTime`)) = 8 
0

Если столбец имеет тип данных date вы можете использовать диапазон дат для ваших критериев в Sargable образом

SELECT id, BuyerName,BuyerEmail,TransactionID,DateTime 
FROM `order` 
WHERE DateTime >='01-08-2015' 
AND DateTime <= '31-08-2015' 

Для datetime вы можете написать его как

SELECT id, BuyerName,BuyerEmail,TransactionID,DateTime 
FROM `order` 
WHERE DateTime >='01-08-2015 00:00:00' 
AND DateTime <= '31-08-2015 23:59:59' 
0

если тип столбца даты и времени, то попробуйте это

$query = mysql_query(" 
    SELECT id, BuyerName, BuyerEmail, TransactionID, `DateTime` 
    FROM `order` 
    WHERE YEAR(DATE(`DateTime`)) = 2015 AND MONTH(DATE(`DateTime`)) = 8 
    LIMIT $start, $per_page 
") or die(mysql_error()); 

или просто

$query = mysql_query(" 
    SELECT id, BuyerName, BuyerEmail, TransactionID, `DateTime` 
    FROM `order` 
    WHERE `DateTime` LIKE '2015-08-%' 
    LIMIT $start, $per_page 
") or die(mysql_error()); 
0
$time_you_want_to_choose = strtotime('previous month'); 

$ym = date('Y-m', $time_you_want_to_choose); 

$query = mysql_query(" 
      SELECT `id`, `BuyerName`, `BuyerEmail` , `TransactionID`, `DateTime` 
      FROM `order` 
      WHERE `DateTime` like '$ym%' 
      LIMIT $start, $per_page 
     "); 
Смежные вопросы