MySQL における datetime と timestamp の違いと選択

MySQL における datetime と timestamp の違いと選択

MySQLでよく使用される 2 つの時間保存タイプは、 datetimetimestampです。テーブルを構築する際には、それらをどのように選択するかを考慮する必要があります。それぞれの違いと選び方についてお話しします。

1 違い

1.1 スペース占有

タイプバイトを占有する表現
日時8バイトyyyy-mm-dd 時:分:秒
タイムスタンプ4バイトyyyy-mm-dd 時:分:秒

1.2 表現範囲

タイプ表現範囲
日時'1000-01-01 00:00:00.000000' から '9999-12-31 23:59:59.999999'
タイムスタンプ'1970-01-01 00:00:01.000000' から '2038-01-19 03:14:07.999999'

timestamp は中国語では「 timestamp 」と翻訳され、現在の時刻から Unix 年 1 (1970 年 1 月 1 日 0 時 0 分 0 秒) までの秒数です。一部の時間計算では、 datetime形式の場合、計算が難しくなります。たとえば、私が1994-1-20 06:06:06に生まれ、現在の時刻が2016-10-1 20:04:50の場合、私が生きてきた秒数を計算するには、datetime を変換する関数が必要ですが、 timestamp は直接減算できます。

1.3 タイムゾーン

timestamp 4 バイトのみで、UTC 形式で保存されます。現在のタイムゾーンを自動的に取得し、変換を実行します。

datetimeが 8 バイトとして保存され、タイム ゾーンの取得は実行されません。

つまり、 timestampの場合、保存時と取得時のタイムゾーンが異なると、取得されるデータも異なります。 datetimeの場合、入力したものが返されます。

もう 1 つの違いは、NULL が格納されている場合、 timestamp自動的に現在の時刻を格納するのに対し、 datetime NULL を格納することです。

2 テスト

新しいテーブルを作成しましょう

データの挿入

データを見ると、 NULLが格納されていることがわかります。Timestamp timestamp現在の時刻を自動的に格納しますが、 datetimeNULL

タイムゾーンを East 9 に変更して、データを再度確認します。 timestamp datetimeより 1 時間長いことがわかります。

挿入された値が無効な場合はどうなりますか?挿入された時間がタイムスタンプの場合

結果は0000-00-00 00:00:00です。公式の説明によると、挿入された値が無効な場合は0000-00-00 00:00:00変換されますが、タイムスタンプはMySQL有効な時間形式ではありません。

では、どのようなフォームを挿入できるのでしょうか?ここに3つあります

//以下はすべてMySQLで許可されている形式であり、MySQLは自動的に処理します
2016-10-01 20:48:59
2016#10#01 20/48/59
20161001204859

3つの選択肢

時間がLinux時間を超える場合、またはサーバーのタイムゾーンが異なる場合は、 datetimeを選択することをお勧めします。

自動挿入や自動更新時間機能を使用する場合は、 timestampを使用できます。

年、日付、時刻だけを表現したい場合は、それぞれ 1、3、3 バイトを占めるyeardatetimeも使用できます。datetime datetimeそれらのコレクションです。

MySQLdatetimetimestampの違いと選択に関するこの記事はこれで終わりです。MySQL のdatetimetimestampの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL における Datetime と Timestamp の使用の概要
  • MySQL から Excel にテーブルデータをエクスポートする際の日時形式に関する簡単な説明
  • MySQL における datetime と timestamp の違いと使い方
  • MySQL で datetime 型のデフォルト値を設定する方法
  • MySQL データベースで datetime 型を作成する方法

<<:  ウェブ画像のホットリンクと座標値を設定するサンプルコード

>>:  TypeScriptジェネリックの使用

推薦する

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...

Vue+Openlayer で select を使用して要素を選択する実装コード

効果画像: 実装コード: <テンプレート> <div id="map&q...

HTMLでのラジオ値の取得、割り当て、登録の詳細な説明

1. ラジオのグループ化名前が同じであれば、それらはグループであり、つまり、次のようにグループ内で選...

PostgreSQL正規表現の一般的な機能の概要

PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...

JavaScript初心者がよく犯す間違い

目次序文undefined と null の混同紛らわしい数値の加算と文字列の連結戻り文の改行の問題...

...

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

シナリオシミュレーション:国内企業の中には、重要な業務をサポートするために特定のウィンドウ プログラ...

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

ReactでのDOM操作の実装

目次前の単語使用シナリオ参照HTML要素クラスコンポーネント機能コンポーネント[DOMノードを親コン...

HTML 代替カラーコードを実現する n 通りの方法 サンプルコード

この記事では、主に HTML のサンプル コードを紹介し、次のように交互に色を変更する方法を共有しま...

Linux でログインタイムアウト後に非アクティブなユーザーを自動的にログアウトする

方法1: .bashrcまたは.bash_profileファイルを変更するこれは、ホーム ディレクト...

デジタル時計効果を実現するJavaScript

この記事の例では、JavaScriptでデジタル時計効果を実装するための具体的なコードを参考までに共...

HTML でのフォームとフォーム送信操作に関する情報のコレクション

ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...

テキストの折り畳み特殊効果を実現する HTML+CSS の例

この記事では、主に HTML + CSS を使用してテキストの折りたたみ特殊効果を実現する例を紹介し...