используйте WHERE CLAUSE для поиска данных от даты A до даты B - PullRequest
1 голос
/ 12 октября 2010

Допустим, у меня есть два раскрывающихся списка и одна кнопка на странице поиска:

From
<select id="1stdate">
Until
<select id="2nddate">
<input type="button" id="search">

Я хочу найти данные от 1stdate до 2nddate, как использовать WHERE CLAUSE для этого случая?напримерЯ хочу искать данные "с 09-2010 до 11-2010".это мой запрос:

SELECT CONCAT( YEAR(Inspection_datetime ),'-',LPAD(MONTH(Inspection_datetime),2,'0'))
FROM `inspection_report`
GROUP BY  CONCAT( MONTH(Inspection_datetime ),YEAR(Inspection_datetime))
ORDER BY  CONCAT( MONTH(Inspection_datetime ),YEAR(Inspection_datetime))  DESC

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Я обычно делал что-то вроде этого:

<?php

list($m1, $y1) = explode($_1stdate);
list($m2, $y2) = explode($_2nddate);

$date1 = "$y1-$m1-01";
$date2 = "$y2-$m2-" . date("t", mktime(0,0,0,$m2, 1, $y2));

$sql = "SELECT *
FROM `inspection_report`
WHERE DATE(Inspection_datetime) BETWEEN '$date1' AND '$date2'";

Обратите внимание: для простоты я не добавляю валидации форм.

0 голосов
/ 12 октября 2010

это то, что вам нужно:

WHERE Inspection_datetime BETWEEN $1stdate AND $2nddate

так что это приведет к

SELECT CONCAT( YEAR(Inspection_datetime ),'-',LPAD(MONTH(Inspection_datetime),2,'0'))
FROM `inspection_report` WHERE Inspection_datetime BETWEEN $1stdate AND $2nddate
GROUP BY  CONCAT( MONTH(Inspection_datetime ),YEAR(Inspection_datetime))
ORDER BY  CONCAT( MONTH(Inspection_datetime ),YEAR(Inspection_datetime))  DESC
...