0

テーブルのタイムスタンプ列から一意の年を選択しようとしていますが、これまでのところ失敗しています。間に 3 つの一意の年がある約 50 行があります。

$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] => ) )

3 つの異なる年があるはずです。

私は MySQL の専門家ではなく、PDO もまったく初めてです。どこが間違っているのかわかりません。

更新しました

バックティックで囲みtimestampましたが、それでも同じ結果です。

print_r($getyears->errorInfo());返されたエラー情報の印刷:

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

timestampintタイプ フィールドであり、二重チェックの後、表全体には 3 つの一意の年が含まれていることがわかります。

更新 2

もう少し情報:

すべての行のtimestampフィールド ( int(11))には、次のいずれかがあります。

1230587568
1262123568
1356817968
4

1 に答える 1

1

でエラーを表示できます

print_r($dbh->errorInfo());

また

print_r($getyears->errorInfo());

Reserved Wordsによると、timestamp引用符なしで使用できます。ただし、とにかくバッククォートで引用するのは良い習慣です。

date_formatdateタイプではなく、タイプで機能しintます。timestampが UNIX タイムスタンプ (1970-01-01 からの秒数) の場合は、from_unixtime代わりに試すことができます。

于 2012-12-29T22:44:08.773 に答える