0

こんにちは、「login-time」のような列を作成する必要がある mysql テーブルに $_SESSION['login_time'] = time() を保存する必要がありますが、これらの 2 つのデータ型「timestamp」と「datetime」と混同しています。この場合、どちらが効率的でしょうか。私を助けてください...

ありがとう

4

2 に答える 2

1

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の質問は、使用に関するさらに多くの情報を提供します。datetimetimestamptime()timestampdatetime

于 2013-03-16T14:41:09.310 に答える
0

明らかに、ここではタイムスタンプが最良の選択です。そのような質問が出てきたとき、それに対する唯一の答えは「私が保存しているものの意味は何ですか」です。ログイン時間は、何度も更新する「時点」です。したがって、直面している 2 つのタイプのうち、「カレンダーの日付と時計の時刻」ではなく「時点」を意味するタイプを選択します。DateTime は、日付が付けられたすべてのものを格納するためにここにあります。TimeStamp は時間をマークするためにここにあるだけです。

ログイン時間は定義上タイムスタンプであるため、Timstamp タイプを使用する方が賢明で効率的でなければなりません。

この回答の唯一の制限は、タイムスタンプが技術的に 2038 に制限されていることです。

于 2013-03-16T14:49:16.257 に答える