2011-08-05 25 views
0

フィールド名が "date"のデータ型 "char"で、フィールドの値が "04-08-2011 04:47:08 EDT" ですが、レコードを取得したい場合データベースからレコードを取得する際に問題が発生しました

select * from table_name where date="04-08-2011 04:47:08 EDT" 

のような日の私達のデータベースの基礎しかし、私はあなたが設定された長さの下にある任意の文字をデータ型charを使用している場合はいずれかが私に

+0

多分フィールドが短すぎると、一部のデータが切り捨て:あなたのフィールドには、「日付」の場合、クエリは次のようになりますので、あなたは、 ''の間に配置する必要がありますか? – RiaD

+0

多分mysql_error() – RiaD

+1

を試してみてください。マニュアルでは引用符で囲まれていない識別子として許可されていますが、 'date'はmysqlキーワードです。フィールド名をエスケープするためにバックグ( ')を追加してみてください。 –

答えて

0

を助けることができ、このクエリのいずれかの結果を得るいけません列の右にスペースが埋め込まれます。

char(30)そうのようなパッドになります(あなたがしなければならない場合)

04-08-2011 04:47:08 EDT  <-- spaces up to arrow 

が日付データ型またはvarchar型を使用します。応答で


コメントをするには:

をあなたはphpMyAdminのからこのクエリを実行することがありますか?そうであれば、行を返しますか?そうでない場合は試行します。

+0

こんにちは@Prisoner私はvarcharを使用して申し訳ありませんが、それでも私は結果を取得していません –

+0

私の応答を参照してください。 – Prisoner

2

あなたのフィールドには、Xの文字があり、X-3文字を挿入した場合、3は空白で満たされている文字を残したので、LIKE文を使用してみてください、そうのようになり、あなたのクエリを変更:

select * from table_name where date LIKE "04-08-2011 04:47:08 EDT%" 

EDIT :dateはMySQLのフィールド型なので、このクエリは無効です。

select * from table_name where `date`="04-08-2011 04:47:08 EDT" 
+0

これは良い助言ではありません、あなたは全く理由なしにデータベースの空白のオーバーヘッドを運ぶでしょう。より高価なクエリを使用してデータを検索します。とにかく、彼は実際には 'char 'ではなく' varchar'を使っています。 – Prisoner

+1

実際、私はコメントを読んだだけでなく、「日付」についても認識しました。予約語です。 – Ivan

+0

@Ivanはその仕事をしています。日付は「04-08-2011 04:47:08 EDT%」、 です。 –

関連する問題