MySQLの保存時間の不一致の問題を解決する

MySQLの保存時間の不一致の問題を解決する

Java を使用してシステム時間を取得し、それを MySQL データベースに保存した後、時間タイプが datetime または Timestamp の場合、データベースの保存がローカル時間と一致しないことがわかります。

大きな原因は、MySQL に設定されているタイムゾーンがローカルタイムゾーンと一致していないことです。解決策は、オンラインで検索して見つけることができる MySQL タイムゾーン設定を変更することです。

私は2番目の方法をお勧めします

プロジェクトの実際のニーズに応じて、データベースに接続する DBUtil クラスで設定するだけです。たとえば、次のコードでは、タイムゾーンをアジアの上海と同じタイムゾーンに変更しました。

プライベート静的文字列ドライバー = "com.mysql.cj.jdbc.Driver";
    プライベート静的文字列 url = "jdbc:mysql://127.0.0.1:3306/mypetstore?serverTimezone=Asia/Shanghai&useSSL=false";

serverTimezone=Asia/Shanghai はタイムゾーンを設定するために使用されます。

MySQL からタイムスタンプ データを取得してブラウザに表示すると、末尾に常に .0 が付いてしまい、非常に煩わしいです。どうすればよいでしょうか?

次のEL式とJSTLタグを使用してフォーマットすることができます。log.dateは見つかった時間データです。

<fmt:formatDate 値="${log.date}" タイプ="日付" パターン="yyyy-MM-dd HH:mm:ss" />

注意: yyyy-MM-dd hh:mm:ssと書くと午前と午後の区別がつきません

補足:MySQL のストレージ時間または日付の不整合の問題

ここでは、MySQL データベースにレコードを追加するときに日付が 1 日ずれたり、時刻が間違っていたりする問題について説明します。

問題のシナリオ

コードロジックに問題はありません。ステップごとに実行すると、保存時の日付は正しいのですが、データベースに保存された日付が間違っていることがわかりました。

理由

理由は、データ ソース接続を構成するときに追加したパラメータに問題があるためです。正しく推測すると、構成した serverTimezone パラメータは UTC である必要があります。これは、間違ったタイム ゾーンが使用されているため、データを保存するときに日付が間違って配置されるためです。

ここに画像の説明を挿入

解決

以下のように、serverTimezone を Asia/Shanghai に設定します。もう一度試すと、問題は解決します。

ここに画像の説明を挿入

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • MySQL で時刻と日付の型を保存する際の選択問題を分析する
  • MySQLストレージ時間タイプの選択に関する問題の説明
  • 時刻を保存するために適切な MySQL の datetime 型を選択する方法
  • 指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)
  • MySQL で日付を保存するためのベスト プラクティス ガイド

<<:  主軸上のFlex子要素の比率を制御する方法

>>:  Dockerコンテナの原理の分析

推薦する

Linux クラウド サーバーに JDK と Tomcat をインストールするための詳細な手順 (推奨)

JDKをダウンロードしてインストールするステップ 1: まず、公式 Web サイト http://...

ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われています。これは HTML 言...

MySQL 5.7 データベースのインストール手順の個人的な要約

1.mysql-5.7.19-winx64.zip(これは無料のインストールバージョンで、約318 ...

CocosCreatorでリストを作成する方法

CocosCreator バージョン: 2.3.4 Cocos には List コンポーネントがない...

HTMLウェブページの基本概念の簡単な分析

ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...

MySQLでストアドプロシージャをデバッグする最も簡単な方法

同僚から、一時テーブルを使用して変数データを挿入して表示する方法を教わったことがありますが、この方法...

Linux usermod コマンドの使用

1. コマンドの紹介usermod (ユーザー変更) コマンドは、ユーザー アカウントを変更するため...

MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル

MySQL 5.7.27のインストールチュートリアルは以下のように記録され、皆さんと共有されています...

dockerコンテナにviコマンドをインストールする簡単な操作

docker コンテナを使用する場合、vim がインストールされていないことがあり、vim コマンド...

SQL 最適化チュートリアル: IN クエリと RANGE クエリ

序文「High Performance MySQL」では、インデックスでは範囲フィールドの後の部分が...

自己終了XHTMLタグを書くときに注意すべきこと

XHTML の img タグはいわゆる自己終了タグであり、XML では完全に合法です。 XHTMLの...

MySQL ルートパスワードを変更する複数の方法 (推奨)

方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...

MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル (CentOS7)

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

Linux の高性能ネットワーク IO と Reactor モデルの分析

目次1. 基本概念の紹介2. ネットワークIOの読み取りと書き込みのプロセス3. 5つのLinuxネ...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...