2017-03-17 3 views
0

私はMySQLデータベースでは新しいです。日時とタイムスタンプフィールド

テーブル作成時にdatetimeフィールドまたはtimestampフィールドを使用することをお勧めします。 私はMySQL 5.7とinnodbエンジンを使用しています。

ありがとうございました

+1

日時フィールドがタイムスタンプfileldも時分秒が含まれている間だけ...日付年の月が含まだから、その要件に依存し、どのようにデータを保存するのです....しかし、私は、フィルタに簡単になり、タイムスタンプfileldを取るためにrecommenうデータを注文する –

+2

@AnkitAgrawal:dateTIMEは "date year month"を含むだけではありません。時間も含まれています。したがって、名前は... – Nanne

+0

また、参照することができますhttp://stackoverflow.com/questions/409286/should-i-use-field-datetime-or-timestamp –

答えて

1

私はタイムスタンプを使用します。あなたはこのようにタイムゾーンのもので問題になることはありません。これはかなり難しいかもしれません。

1970年1月1日のタイムスタンプ「0」を処理する必要があるため、タイムスタンプは、たとえば誕生日には役に立ちません。作成時には問題にはなりません。

0

MySQLのタイムスタンプは、通常、レコードの変更を追跡するために使用され、レコードが変更されるたびに頻繁に更新されます。特定の値を格納する場合は、datetimeフィールドを使用する必要があります。

あなたはUNIXタイムスタンプまたはネイティブのMySQLのdatetimeフィールドを使用するかを決定することを意味している場合、ネイティブ形式で行きます。 MySQL内で計算を行う方法は("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)")であり、PHPで操作したい場合はレコードを照会するときに値の形式をUNIXのタイムスタンプ("SELECT UNIX_TIMESTAMP(my_datetime)")に変更するのは簡単です。

だから、私はそれがデフォルト値としてON UPDATE CURRENT_TIMESTAMPまたはCURRENT_TIMESTAMPを持つようなものをサポートしていますので、自動的に管理する必要がある何のためTIMESTAMPを使用するほとんどのデータベース操作のために

0

をdatetime型を使用するのが最も賢明です。

DATETIMEではこれはできませんが、変換する必要がないので、私はより良いフォーマットが好きです。だから私は他のすべてのためにそれを使用するだろう。

あなたが自動生成されます柔軟なフォーマットが必要な場合は、あなたはおそらくTIMESTAMPで行くと、必要なときに変換する必要があると思います。

関連する問題