Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Выбор данных из БД в промежутке дат


Автор: kinder999 26.7.2010, 12:38
Здравствуйте, помогите создать запрос.
Есть БД MySQl в которое есть таблица "table" со следующей структурой
Код

event_id (int), event_name(varchar), event_start_date (date), event_finish_date (date)

В ней хранятся некоторые события, у которых указанно начало этого события (event_start_date) и конец (event_finish_date). Как правильно мне составить запрос, что бы бролись данные только такие, когда текущая дата входит в период этих дат?
Я написал такой запрос. но он не берёт данные:
Код

$sqlquery= "SELECT * FROM td_event WHERE DATE_FORMAT(event_start_date,'%Y-%m-%d') < ".$nowdate." AND DATE_FORMAT(event_finish_date,'%Y-%m-%d') > ".$nowdate.";";
где, $nowdate = mdate("%Y-%m-%d", time()))

используется фраймворк CodeIgniter 
Код

mdate()

Данная функция идентична функции PHP date() за исключенем того, что она позволяет вам использовать синтаксис шаблонов дат MySQL, где перед каждым кодовым символом стоит знак процента: %Y %m %d и т.д.

Преимущество создание дат таким образом в том, что вам не нужно заботится об экранировании символов, не являющихся кодовыми символами, что приходится делать при использовании date(). Пример:
$datestring = "Год: %Y Месяц: %m День: %d - %h:%i %a";
$time = time();

echo mdate($datestring, $time);

Если вторым параметром не указывается конкретное значение timestamp — используется текущее время.


заранее спасибо за помошь

Автор: CruorVult 26.7.2010, 15:38
Код

SELECT * FROM td_event WHERE event_start_date < NOW() AND event_finish_date >NOW()

Автор: kinder999 28.7.2010, 13:53
Спасибо! Все работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)