2013-05-24 4 views
0

Эй, ребята, я пытался понять это, меняSQL запросов с использованием DATE_ADD для времени

$query = "SELECT URL 
      FROM Matches 
      WHERE match_date = '" . $currentdate . "' 
      AND play_datetime < '" . $currenttime . "' 
      AND DATE_ADD(play_datetime, INTERVAL 3 HOUR) > '" . $currenttime . "'"; 

я могу получить первый и вернуться, но вторая часть не будет работать, где я есть DATE_ADD, ive попробовал само по себе вернуть что-нибудь, и я не могу заставить его работать!

$ текущее время сейчас 06:01:14, its = date (h: i: s); затем в play_datetime он подхватывает match_date перечисляет результат, время в play_datetime является 04:00:00

+0

Какова ценность '$ currenttime'? – Barmar

+0

FYI, вы можете объединить их в '' $ currenttime 'BETWEEN play_datetime И DATE_ADD (play_datetime, INTERVAL 3 HOUR) ' – Barmar

+0

play_datetime это временная метка или тип даты? – JonathanRomer

ответ

0

По Вашему запросу $ currendate имеют дату и $ CURRENTTIME есть время.

Но ваше имя столбца «play_datetime» предполагает, что оно имеет дату или время. , так что если это правильно, что ваш запрос работает, но вы должны поместить $ currentdatetime вместо $ currenttime.

$query = "SELECT URL 
    FROM Matches 
    WHERE match_date = '" . $currentdate . "' 
    AND play_datetime < '" . <timestamp> . "' 
    AND DATE_ADD(play_datetime, INTERVAL 3 HOUR) > '" . <timstamp> . "'"; 
+0

У меня есть текущее время = дата ('h: i: s'); Значит, это означает, что может быть $ текущим временем, потому что он не возвращает мне ничего. В моей БД play_datetime есть тип TIME. – JS60

+0

Я могу вернуться из play_datetime <'". ."' Просто не DATE_ADD – JS60

+0

означает временную метку date ("d-m-Y h: i: s"); скажите мне тип данных play_datetime? то я могу сказать вам лучше. – developerCK

Смежные вопросы