从时间戳中选择唯一年份 - 结果与预期不符

时间:2012-12-29 22:37:52

标签: php mysql

尝试从表中的timestamp列中选择唯一年份,但到目前为止不成功。大约有50行,它们之间有3个独特的年份。

$getyears = $dbh->prepare("SELECT DISTINCT DATE_FORMAT(timestamp, '%Y') as timestamp FROM press");
$getyears->execute();
$years = $getyears->fetchAll(PDO::FETCH_ASSOC);

print_r($years);

结果是:

Array ( [0] => Array ( [timestamp] => ) )

应该有三年不同。

我不是MySQL的专家,也不是PDO的新手。看不出我哪里错了。

更新

我将timestamp括在了后面,但仍然是相同的结果。

打印返回的错误信息print_r($getyears->errorInfo());

Array ( [0] => 00000 [1] => [2] => )

timestampint类型字段,经过仔细检查后,整个表格肯定包含3个唯一年份。

更新2

更多信息:

所有行在timestamp字段(int(11))中都有以下任一行:

1230587568
1262123568
1356817968

1 个答案:

答案 0 :(得分:1)

您可以使用

显示错误
print_r($dbh->errorInfo());

print_r($getyears->errorInfo());

根据Reserved Words,允许使用timestamp不加引号。虽然,无论如何用引号引用它是个好习惯。

date_format适用于date类型,而不适用于int类型。如果timestamp是unix时间戳(自1970-01-01以来的秒数),则可以尝试使用from_unixtime