尝试从表中的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] => )
timestamp
是int
类型字段,经过仔细检查后,整个表格肯定包含3个唯一年份。
更新2
更多信息:
所有行在timestamp
字段(int(11)
)中都有以下任一行:
1230587568
1262123568
1356817968
答案 0 :(得分:1)
您可以使用
显示错误print_r($dbh->errorInfo());
或
print_r($getyears->errorInfo());
根据Reserved Words,允许使用timestamp
不加引号。虽然,无论如何用引号引用它是个好习惯。
date_format
适用于date
类型,而不适用于int
类型。如果timestamp
是unix时间戳(自1970-01-01以来的秒数),则可以尝试使用from_unixtime
。