0

特定の日付を格納できる MySQL 列が必要です。私が使用しているアプリケーションは、UNIX タイムスタンプ (1970 年 1 月 1 日から経過した秒数) を提供します。この情報をデータベースに保存し、後で特定の方法で取得する必要があります。以下を参照してください。

この日付が保存された後、このタイムスタンプに基づいてデータベースをクエリできるようにする必要があります。たとえば、タイムスタンプの日が 4 日であるすべての行を取得できる必要があります。

それで、私の質問は、クエリを実行するのが最も簡単な場所にこの日付を保存するにはどうすればよいですか? DATETIME と TIMESTAMP は有効なオプションのようですが、クエリの操作方法がわかりません。タイムスタンプを整数として保存することを楽しみにしていません。そのようなクエリを作成できず、その作業を PHP にオフロードする必要があるからです。

それが役立つ場合は、これらのタイムスタンプを UTC 時間で処理する必要があります。TIMESTAMP が PST (現地時間) への変換を行ってくれることはわかっているので、MySQL または PHP で UTC への変換を行う必要があります。(少なくとも私はそうしなければならないと思います)

助けてください!

4

2 に答える 2

1

私があなただったら、それらのデータを として保存しますDateTime。理由は

  • 記録は私たち自身の目で読むことができます。たとえば2013-01-04 00:25:12、よりも優れてい1357259112ます。
  • インデックスを殺すと思うような変換関数を使用する必要はありません。orを使用して値を直接検索できるため、インデックスを利用できるため、orFROM_UNIXTIMEを使用する方がはるかに優れています。datedatetime=BETWEEN
于 2013-01-04T00:31:08.970 に答える
0

として保存し、次のようにintegerMySQL のFROM_UNIXTIME()関数を使用します。

SELECT
    `field_list`
FROM
    `table_name`
WHERE
    FROM_UNIXTIME(`the_date`, '%d') = 4;
于 2013-01-04T00:21:53.540 に答える