2011-03-30 57 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