1

これは些細なことかもしれませんが、タイムスタンプ値(たとえば、によって返されるtime())をTIMESTAMPMySQLテーブルの列に格納する場合は、次の2つのうちどちらが望ましいですか。

function storeTime($timestamp) {
   // Option one:
   $query = "INSERT INTO faketable (datecol) VALUES (FROM_UNIXTIME(".$timestamp."))";
   // Option two:
   $query = "INSERT INTO faketable (datecol) VALUES (".date("YY-MM-DD HH:MM:II", $timestamp).")";
}

違いもありますか?

編集:申し訳ありませんが、意味date()ではなくstrtotime()...

編集2: NOW()マスタードをカットしません。実際のタイムスタンプは私のメソッドに送信されるパラメーターです。事前に何なのかわかりません。

編集3:私は本当に夜のこの時間に質問をするべきではありません。問題の列は、実際にはTIMESTAMP列であり、列ではありませんDATETIME

4

3 に答える 3

1

あなたの質問に答えるために; いいえ、論理的な違いはありません。どちらも日付の文字列表現https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtimeを返します。これは、MySQLが喜んでDATETIMEに変換します。またはTIMESTAMPタイプ。どちらがより速い証拠はMySQLを示唆するでしょう。http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/、MySQLCURDATE()またはPHPのdate()をより速く使用しますか?

于 2013-02-12T22:44:49.400 に答える
0

最も単純なのはFROM_UNIXTIME()mysqlのです。これは、単一の整数->日付変換になります。PHPでそれを行うことは、integerr-> string-> datetimeを意味し、これははるかに効率的ではありません。

同様に、strtotime()は完全に無効です。これは、関数が機能するようになったわけではありません。データベースにが含まれることになります。

「今」のタイムスタンプを保存する場合は、タイムスタンプフィールドタイプを使用しないのはなぜですか。レコードを挿入/更新すると、自動的に現在の時刻に設定されます。

于 2013-02-12T22:20:06.090 に答える
0

どのように試合

INSERT INTO faketable (datecol) VALUES (UNIX_TIMESTAMP())

それがあなたがOPを探しているものだと思います

于 2013-02-12T22:26:59.303 に答える