ホームページ >バックエンド開発 >PHPチュートリアル >タイムスタンプに関する問題

タイムスタンプに関する問題

WBOY
WBOYオリジナル
2016-06-13 12:57:07864ブラウズ

タイムスタンプの問題
テーブル構造: CREATE TABLE `id` (
`id` タイムスタンプが NULL ではありません
) ENGINE=InnoDB DEFAULT CHARSET=utf8

mysql> select * from id;
+---------------------+
| id +---------------------+
| 2013-01-10 20:21:04 |
+---------------------+
セット内の 1 行 (0.00 秒)

timestamp には、タイムスタンプまたは日時のような形式の文字列が格納されていますか?
タイムスタンプである場合、選択時にタイムスタンプが選択されないのはなぜですか?
datetime に似た文字列である場合、datetime が 8 バイトで、timestamp が 4 バイトしかないのはなぜですか?

アドバイスありがとうございます。


-----解決策--------------------------------MySQL での日時とタイムスタンプの比較

同じ


を表示
TIMESTAMP 列は DATETIME 列と同じ形式で表示されます。つまり、表示幅は 19 文字に固定され、形式は YYYY-MM-DD HH:MM:SS となります。

違う

範囲

datetime は、DATETIME 値を「YYYY-MM-DD HH:MM:SS」形式で取得して表示します。サポートされている範囲は「1000-01-01 00:00:00」から「9999-12-31 23:59:59」です。TIMESTAMP 値は 1970 より前または 2037 より後にすることはできません

保存

タイムスタンプ

1.4バイト格納(タイムスタンプ値は4バイトに格納)

2. 値は UTC 形式で保存されます (ミリ秒数が保存されます)

3. タイムゾーン変換: 保存時に現在のタイムゾーンを変換し、取得時に現在のタイムゾーンに戻します。

日時

1.8バイトのストレージ

2. 実際のフォーマットストレージ (保存したものを保存し、保存したものと同じものを取得するだけです。)

3. タイムゾーンとコンバージョンとは関係ありません。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。