2011-03-30 115 views
0

目前,我有這樣的代碼:如何使用時間變量,而不是Unix時間戳(CURRENT_TIMESTAMP())

$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 
);"; 

這是用來運行開放時間查詢。我有一個變量$ latest_ping,它基本上包含用戶'ping'數據庫的最新時間。

如果可能的話,我想更換這個$ latest_ping變量CURRENT_TIMESTAMP,因爲我們想用不同的時區等類似

UNIX_TIMESTAMP($ latest_ping)和時間(

我已經試過的東西$ latest_ping),但他們沒有工作。

任何幫助將不勝感激。

+0

您應該使用準備好的語句並傳遞參數。這通常比連接sql語句更好。 – 2011-03-30 08:23:13

+0

定義「包含時間」,花花公子。沒有人知道你的意思與這個「時間」 – 2011-03-30 08:45:38

回答

0

給人以

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

編輯一試:其實也並不需要它。確保日期是在mysql中使用的格式

+0

感謝您的答覆。我嘗試過,但沒有奏效......我似乎已經(雖然我認爲)已經懷疑過。我用$ timestamp = strtotime($ latest_ping);然後簡單地用'$ timestamp替換UNIX_TIMESTAMP代碼,它似乎正在按照我需要的方式工作。不知道這種方式是否理想,但只要它有效! – 2011-03-30 08:20:35

+0

使用PHP日期格式函數來正確格式化它。 http://in2.php.net/manual/en/function.date-format.php – Shameer 2011-03-30 08:45:21