UNIX_TIMESTAMP用法查询

时间:2010-08-08 08:48:03

标签: php mysql timestamp

在我的php5代码中我想使用UNIX_TIMESTAMP函数将日期时间转换为unix时间戳而不使用php代码进行转换,因为我相信这种方式更快但是你如何从行集中获取unix时间戳,即如何索引到行集 获取整数unix时间戳

以下是数据库架构的摘要

age   int(5) 
user  varchar(256)    
created  timestamp   CURRENT_TIMESTAMP 

$query="SELECT user, UNIX_TIMESTAMP(created) FROM  accounts WHERE age='$age'" ;
$result = mysql_query($query)  or die ('Error querying domain');

while($row = mysql_fetch_array($result))
{
 $callerid = $row['callerid'];
 $created_ts = $row['created'];
 etc....

3 个答案:

答案 0 :(得分:4)

或使用AS子句为您的专栏提供 更具描述性的名称 ,如下所示:

UNIX_TIMESTAMP(created) AS ucreated

你可以这样说:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

  $created_ts = $row['ucreated'];
............

更多信息:

答案 1 :(得分:2)

使用别名SELECT user, UNIX_TIMESTAMP(created) AS created FROM accounts

答案 2 :(得分:1)

默认情况下(MYSQL_BOTH),mysql_fetch_array为您提供数字和关联索引。所以你可以这样做:

$created_ts = $row[1]; 

或者,给它一个名字:

$query="SELECT user, UNIX_TIMESTAMP(created) AS created_ts FROM  accounts WHERE age='$age';";
// ...
$created_ts = $row['created_ts'];

另请注意,如果age来自用户输入,则应在连接之前使用mysql_real_escape_string。或者切换到支持预准备语句的框架(如PDO或MySQLi)。