【问题标题】:UNIX_TIMESTAMP Function MySQLUNIX_TIMESTAMP 函数 MySQL
【发布时间】:2026-01-22 17:10:01
【问题描述】:

知道为什么这不起作用吗?我有一种感觉,它是我给它的行名。 它不回应任何东西

$result = mysql_query("SELECT UNIX_TIMESTAMP(datetime) FROM voters WHERE ip='$ip'") or die(mysql_error());

while($row = mysql_fetch_array($result)) {
   $unixtimestamp = $row['UNIX_TIMESTAMP(datetime)'];
   echo $unixtimestamp;
}

【问题讨论】:

  • 这段代码的结果是什么?

标签: php mysql datetime unix timestamp


【解决方案1】:

没关系,datetime 不是保留字,但我仍然强烈建议不要使用它并选择更好的列名。 :),但下面仍然存在。

为列起别名,便于以后将其从数组中拉出:

$result = mysql_query("SELECT UNIX_TIMESTAMP(`datetime`) as voted_on FROM voters WHERE ip='$ip'") or die(mysql_error());

while($row = mysql_fetch_array($result)) {
    $unixtimestamp = $row['voted_on'];
    echo $unixtimestamp;
}

应该可以。

【讨论】:

  • 我能问一下为什么我不应该使用日期时间吗?只是出于好奇
  • DATETIME 是创建表时的列定义。因此,它会增加混乱等。最好避免使用这些类型的列名。 IE 表定义的行将是:datetime DATETIME NOT NULL,。看起来很奇怪,如果 MySQL 以后认为它是一个保留字(不知道他们是否会这样做),它会破坏你的应用程序。
  • 好的,我会更改它,感谢您的出色回答。代码效果很好,谢谢:D
【解决方案2】:

首先,我建议不要在 mysql 中使用 datetime 作为列名。

如果我有一个名为 vote_time 的 DATETIME 字段,我会这样做:

SELECT UNIX_TIMESTAMP(vote_time) AS unix_vote_time FROM voters WHERE ip='$ip'

然后你可以通过

$unixtimestamp = $row['unix_vote_time'];

【讨论】: