私はいつも、なぜ 始める現在のデータベースのタイムゾーンを表示する mysql> "%time_zone%"のような変数を表示します。 +------------------+--------+ | 変数名 | 値 | +------------------+--------+ | システムタイムゾーン | CST | | タイムゾーン | +08:00 | +------------------+--------+ セット2列(0.30秒) テーブル構造を表示 mysql> desc timestamp_test; +--------------+-----------+------+-----+---------+----------------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +--------------+-----------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | created_time | datetime | YES | | NULL | | | created_at | タイムスタンプ | YES | | NULL | | +--------------+-----------+------+-----+---------+----------------+ 3 列セット (0.26 秒) データの挿入 mysql> timestamp_test(created_time, created_at) に値('2020-12-09 08:00:00', '2020-12-09 08:00:00') を挿入します。 クエリは正常、1 行が影響を受けました (0.22 秒) mysql> timestamp_test から * を選択します。 +----+---------------------+---------------------+ | id | 作成日時 | 作成日時 | +----+---------------------+---------------------+ | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | +----+---------------------+---------------------+ セット内の1行(0.06秒) 今回は正しいようなので、タイムゾーンを変更して再度データを挿入してみます。 mysql> タイムゾーンを "+00:00" に設定します。 クエリは正常、影響を受けた行は 0 行 (0.03 秒) mysql> timestamp_test(created_time, created_at) に値('2020-12-09 08:00:00', '2020-12-09 08:00:00') を挿入します。 クエリは正常、1 行が影響を受けました (0.03 秒) mysql> タイムゾーンを "+08:00" に設定します。 クエリは正常、影響を受けた行は 0 行 (0.04 秒) もう一度データを確認してください。挿入された 2 つの mysql> timestamp_test から * を選択します。 +----+---------------------+---------------------+ | id | 作成日時 | 作成日時 | +----+---------------------+---------------------+ | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | | 2 | 2020-12-09 08:00:00 | 2020-12-09 16:00:00 | +----+---------------------+---------------------+ セットに2行(0.06秒) 実際に保存されたタイムスタンプを見てみましょう。次に、タイムゾーンを変更すると、フィールドの時間は変更されていますが、元のタイムスタンプのデータは変更されていないことがわかります。 mysql> timestamp_test から unix_timestamp(created_at) を * として選択します。 +----+---------------------+---------------------+----------------------------+ | id | created_time | created_at | unix_timestamp(created_at) | +----+---------------------+---------------------+----------------------------+ | 1 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | 1607472000 | | 2 | 2020-12-09 08:00:00 | 2020-12-09 16:00:00 | 1607500800 | +----+---------------------+---------------------+----------------------------+ セットに2行(0.06秒) mysql> タイムゾーンを "+00:00" に設定します。 クエリは正常、影響を受けた行は 0 行 (0.09 秒) mysql> "%time_zone%"のような変数を表示します。 +------------------+--------+ | 変数名 | 値 | +------------------+--------+ | システムタイムゾーン | CST | | タイムゾーン | +00:00 | +------------------+--------+ セットに2行(0.08秒) mysql> timestamp_test から unix_timestamp(created_at) を * として選択します。 +----+---------------------+---------------------+----------------------------+ | id | created_time | created_at | unix_timestamp(created_at) | +----+---------------------+---------------------+----------------------------+ | 1 | 2020-12-09 08:00:00 | 2020-12-09 00:00:00 | 1607472000 | | 2 | 2020-12-09 08:00:00 | 2020-12-09 08:00:00 | 1607500800 | +----+---------------------+---------------------+----------------------------+ セット2行(0.18秒)
上記は、MySQL タイムスタンプがタイムゾーンの問題を無視できる理由の詳細です。タイムゾーンを無視する MySQL タイムスタンプの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: HTML Webページの例を使用してヘッドエリアコードの意味を説明する
>>: Dockerはコンテナに入るためにnsenterツールを使用する
1. Linuxのインストール(rootユーザー操作) 1. vncserver をインストールしま...
目次問題の説明:インストール手順1. 準備2. サーバーにリモート接続する3. 証明書と秘密鍵ファイ...
目次1. MySQLをダウンロードする2. 圧縮パッケージを解凍する3. MySQLを初期化する4....
VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...
デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...
1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...
このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...
目次ブラウザ同一生成元ポリシー1. VUEフロントエンド構成プロキシはクロスドメインの問題を解決しま...
表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...
現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...
目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...
目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...
概要es6 では、配列またはオブジェクトから指定された要素を取得する新しい方法が追加されました。これ...
序文パスワードを忘れることは、よく遭遇する問題です。MySQL または MariaDB データベース...