こんにちは、「login-time」のような列を作成する必要がある mysql テーブルに $_SESSION['login_time'] = time() を保存する必要がありますが、これらの 2 つのデータ型「timestamp」と「datetime」と混同しています。この場合、どちらが効率的でしょうか。私を助けてください...
ありがとう
PHP の関数を使用して挿入する時刻を取得している場合、UNIX エポック (1970 年 1 月 1 日 00:00:00 GMT) からのtime()
秒数が返されます。MySQLデータ型はそれよりも広い範囲('1000-01-01 00:00:00' から '9999-12-31 23:59:59') をサポートし、データ型は '1970-01-01 00: 00:01' UTC から '2038-01-19 03:14:07' UTC (始まる場所から始まる) の場合、概念的にはもう少し一致するので、先に進んで使用することもできます。(2038年以降の日付を保存する予定がない限り、その場合は に夢中になります)。あなたのケースではどちらも機能しますが、datetype と timestampの質問は、使用に関するさらに多くの情報を提供します。datetime
timestamp
time()
timestamp
datetime
明らかに、ここではタイムスタンプが最良の選択です。そのような質問が出てきたとき、それに対する唯一の答えは「私が保存しているものの意味は何ですか」です。ログイン時間は、何度も更新する「時点」です。したがって、直面している 2 つのタイプのうち、「カレンダーの日付と時計の時刻」ではなく「時点」を意味するタイプを選択します。DateTime は、日付が付けられたすべてのものを格納するためにここにあります。TimeStamp は時間をマークするためにここにあるだけです。
ログイン時間は定義上タイムスタンプであるため、Timstamp タイプを使用する方が賢明で効率的でなければなりません。
この回答の唯一の制限は、タイムスタンプが技術的に 2038 に制限されていることです。