2013-04-30 4 views
1

Я пытаюсь найти способ выбрать строку из базы данных, которая датируется между вчерашним 5 вечера. и сегодня 4:59 вечера.Выберите между двумя временами и датами в SQL PHP

База данных заполняется заказами, и я стараюсь, чтобы она отображала все заказы, начиная с вчерашнего дня. до сегодняшнего дня 4:59 вечера. Я должен каждый день отображать эти записи, чтобы мой клиент мог знать, что было заказано сегодня, до момента отсечения.

Я нашел несколько, но только время показа с 0000 до 23:59, в то время как мне нужно 17:00 - 16:59.

Есть ли способ сделать это?

EDIT:

Запрос, который я имел до сих пор:

"SELECT date FROM xcart_orders WHERE date between '".strtotime(date("F j, Y", time() - 60 * 60 * 24))."' and '".strtotime(date('F j, Y'))."'" 

Это вернет мне результат теперь и вчера. Например. В настоящее время 12 вечера, он вернет мне результаты со вчерашнего дня 12 вечера по сегодняшний день (12 вечера).

ОДНАКО, я хочу, чтобы он всегда показывал мне результат от вчерашнего дня 5 вечера до сегодняшнего дня 4:59 вечера. Это необходимо, так как мой клиент занимается электронной коммерцией, а время отсечения для доставки - 5 вечера. Следовательно, ему необходимо консолидировать заказы от Последнее время отсечения до Текущее время отсечения.

Приношу свои извинения за то, что забыл сообщить об этом; дата в базе данных находится в UNIX-метке времени, поэтому мой запрос имеет «strtotime».

Извините, что вызвало путаницу, мой английский не очень хорошо.

С уважением, FT

+2

Можете ли вы показать свой запрос и что вы сделали до сих пор? – 2013-04-30 03:56:53

+0

, пожалуйста, предоставьте хорошую информацию. это довольно запутанно. – Anvesh

+0

@ javalovers "SELECT date FROM xcart_orders WHERE date from '" .strtotime (date ("F j, Y", time() - 60 * 60 * 24)). "И" .strtotime (date (' F j , Y ')).' '' – FTx

ответ

1

Проверить это и попробовать

$yesterday= date("Y-m-d", time()-86400)." 00:00:00"; 
$yesterday2= date("Y-m-d", time()-86400)." 23:59:59"; 

Измените время, если вам нравится

+0

Спасибо, но я думаю, что этот метод может выбрать время только на ту же дату? Теперь я использую это: "SELECT * FROM xcart_orders WHERE date from '" .strtotime (date ("F j, Y 17:00:01", time() - 60 * 60 * 24)). " и '.strtotime (date (' F j, Y 17:00:00 ')). " – FTx

1

Попробуйте

ВЫБЕРИТЕ й FROM у WHERE дата между «2014 -05-07 08:00 'и date_add (' 2014-05-07 08:00 ', ИНТЕРВАЛ 1 ДЕНЬ)

Результат должен быть каждые данные выбраны с даты 2014-05-07 8 утра до 7:59 утра 2017-05-08

Надеется, что это помогает. =)