0

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値を追加しません。DateINSERT

ただし、アプリケーションはクエリがデータベースに送信された日時ではなく、アプリケーションが開始された日付を保存する必要があるため、自分で日付を追加できる必要があります。だから私がすることは、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が初めてです。

手を貸していただければ幸いです。ありがとう!

4

1 に答える 1

0

まあ、私は問題を見つけたと思います.PHPとMySQLとは何の関係もありません.問題は、JavaScriptで日付を生成し、間違った月を与えていることです.. :/

とにかくみんなに感謝します!

于 2013-11-07T18:37:54.413 に答える