Выбор строк, которые находятся в пределах 2 часов от текущего времени - PullRequest
0 голосов
/ 24 мая 2019

Я использую PHP с MySQL и хотел бы выбрать строки, у которых есть время бронирования в течение 2 часов.Как сравнить то, что находится в моей базе данных с функцией NOW() MySQL?

У меня есть столбцы pickupDate в формате yyyy-mm-dd и pickupTime в формате HH:mm (24 часа),Я попытался создать запрос с NOW(), который возвращает 12-часовое время как HH:mm:ss, например, 2019-05-24 07:54:06.Я не могу понять, как отформатировать это в 19:54, или я должен использовать другую функцию вместо этого.

Например, если текущая дата и время 24/05/19 19:54:06, я хотел бы выбрать строки между 19:54 и 21:54 в эту дату.

Моя структура таблицы:

referenceNo VARCHAR(100)    
pickupDate  DATE
pickupTime  VARCHAR(100)

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Вам нужно создать DATETIME совместимое значение из ваших pickupDate и pickupTime (что вы можете сделать, CONCAT объединяя их вместе), затем вы можете сравнить это с диапазоном времени от NOW()до 2 часов спустя:

SELECT *
FROM yourtable
WHERE CONCAT(pickupDate, ' ', pickupTime) BETWEEN NOW() AND NOW() + INTERVAL 2 HOUR

Демонстрация на dbfiddle

0 голосов
/ 24 мая 2019

Добавить два часа в php

$hoursnow     = date('H:i');
$timestamp    = strtotime(date('H:i')) + 60*60*2;
$plusTwohours = date('H:i', $timestamp);

И $PlusTwohours с использованием этой переменной обрамляют запрос, как показано ниже

Запрос SQL:

$sqlQuery = 'select * from foodorder where pickupDate=DATE(NOW()) AND pickupTime>='.$hoursnow.' and pickupTime<='.$plusTwohours;
$result   = mysql_query($sqlQuery);

переменная $result будет иметь значения запроса

Для второго сценария: добавление часов к концу дня 24 мая 23: 30: 00

Это должно быть обработано двумя разными датами для одного и того же столбца pickateDate

$d = new DateTime('2011-01-01 23:30:30');

$startDate =  $d->format('Y-m-d H:i:s'); // For testing purpose assigned manually
$starttime = date('H:i');

// Here Process start, storing end date by adding two hours
$enddate1 = strtotime($startDate) + 60*60*2;

$enddate = date('Y-m-d', $enddate1); // Extracting date alone
$endtime = date('H:i', $enddate1); // Extracting time alone

Необходимо сравнить дату начала и окончания для столбца pickateDate, вот запрос

$sqlQuery = "select * from foodorder where pickupDate>=DATE(".$startDate.") AND pickupDate<=DATE(".$enddate.") AND pickupTime>='".$starttime."' AND pickupTime<='".$endtime."'";
$result   = mysql_query($sqlQuery);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...