Как использовать переменную времени вместо UNIX TIMESTAMP (CURRENT_TIMESTAMP ())

0

В данный момент у меня есть этот код:

    $rawsql = "SELECT 
*
FROM 
    numbers n 
INNER JOIN 
    openings o ON n.id = o.branch_id AND o.dotw = DAYOFWEEK(CURRENT_DATE()) 
INNER JOIN 
    openings_times t ON o.id = t.opening_id
WHERE 
(
    UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) 
    BETWEEN UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.open)) AND UNIX_TIMESTAMP(CONCAT(CURRENT_DATE(), ' ', t.close))
) 
AND 
(
    n.id = %d
);";

который используется для запуска запроса времени открытия. У меня есть переменная $last_ping, которая в основном содержит последнее время, когда пользователь "pinged" в базе данных.

Если возможно, я хотел бы заменить CURRENT_TIMESTAMP этой переменной $latest_ping, потому что мы хотим использовать разные временные зоны и т.д.

Я пробовал такие вещи, как

UNIX_TIMESTAMP ($ last_ping) и время ($ last_ping), но они не работают.

Любая помощь будет принята с благодарностью.

  • 0
    Вы должны использовать подготовленный оператор, а затем передать параметр. Обычно это лучше, чем конкатенация SQL-оператора.
  • 0
    определить "содержит время", чувак. Никто не знает, что вы имеете в виду под этим «временем»
Теги:
timestamp

1 ответ

0
Лучший ответ

Попробуйте

UNIX_TIMESTAMP(date_format("$latest_ping", '%Y-%c-%d %k:%i:%s' ))

Изменить: на самом деле это также не нужно. Убедитесь, что дата сформирована так, как она используется в mysql

  • 0
    Спасибо за ваш ответ. Я попробовал это, но это не сработало ... Я, кажется, подозревал это хотя (я думаю). Я использовал $ timestamp = strtotime ($ latest_ping); а затем просто заменил код UNIX_TIMESTAMP на '$ timestamp, и он, кажется, работает так, как мне нужно. Не уверен, что этот способ идеален, но пока он работает!
  • 0
    используйте функцию форматирования даты PHP, чтобы правильно отформатировать ее. in2.php.net/manual/en/function.date-format.php

Ещё вопросы

Сообщество Overcoder
Наверх
Меню