MySQLでTimestampデータ型を扱うのに問題があります。
次のような単純な DB 構造を使用して、データベースに単純なレコードを保存しています。
ID 整数 名前 varchar 日付のタイムスタンプ テキスト varchar
そして、次のような方法でそれらを取得します。
SELECT * FROM table WHERE Date BETWEEN '2013-01-01' AND '2013-06-30'
たとえば、MySQL が Date フィールドに実際のタイムスタンプを入力できるようにレコードを保存すると、すべて正常に機能します。つまり、クエリのフィールドに2013-10-04 22:40:02
値を追加しません。Date
INSERT
ただし、アプリケーションはクエリがデータベースに送信された日時ではなく、アプリケーションが開始された日付を保存する必要があるため、自分で日付を追加できる必要があります。だから私がすることは、Date
フィールドが使用するのと同じ日付/時刻形式を作成2013-10-04 22:40:02
し、単純に挿入することです:
INSERT INTO table (Name, Date, Text)
VALUES ('Peter', '2013-10-04 22:40:02', 'Hello...')
さて、このようにすると、次のような選択クエリを使用して日付ごとに結果を出すことができません:
SELECT * FROM table WHERE Date BETWEEN '2013-01-01' AND '2013-11-30'
PHPMyAdmin インターフェイスを使用して日付で結果を並べ替えようとしても、手動で追加された日付を含むすべてのレコードが消えます。ID で並べ替えると、再び表示されます。確認したところ、日付と形式は正しいです。したがって、何が問題なのかわかりません。ちなみに、私はMySQLが初めてです。
手を貸していただければ幸いです。ありがとう!