タイムスタンプの問題
テーブル構造: 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. タイムゾーンとコンバージョンとは関係ありません。