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 でパスワードを入力せずに sudo コマンドを実行する方法

sudo コマンドを使用すると、信頼できるユーザーは別のユーザー (デフォルトでは root ユーザ...

Linux C ログ出力コード テンプレート サンプル コード

序文この記事は主に Linux C でのログ出力コード テンプレートに関する関連コンテンツを紹介し、...

さまざまなHTTPリターンステータスコードの詳細な説明

サイト上のページを表示するためのリクエストがサーバーに送信されると(たとえば、ユーザーがブラウザでペ...

ネイティブWeChatアプレット開発におけるreduxの使用の詳細な説明

前提複雑なシナリオでは、複数の異なるページ間で大量のデータを使用したり変更したりする必要があります。...

CSS3は円錐グラデーション効果を実現します

文法:背景画像: 円錐グラデーション(位置の角度から、開始色、...、最後の色)最初のパラメータ:開...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

JavaScript でオブジェクトのプロパティを削除する方法

1. 削除delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

nginxで複数のサーバーを簡単に構成する方法

1: nginx のインストール方法については詳しく説明しません。Baidu で検索してください。 ...

スクロールバーがスペースを占有することで発生するバグを修正しました

背景このバグは滾動條占據空間ことで発生していました。いくつかの情報を確認して、ようやく解決しました。...

Docker を使用してスタンドアロン Pulsar とクラスター化された Redis をデプロイする方法 (開発アーティファクト)

目次1. はじめに: 2. ドッカー: 1 カスタムネットワーク2 展開を開始する3 ネットワークを...

Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明

みなさんこんにちは。私は梁旭です。ご存知のとおり、Linux ではデバイス ファイルも含めすべてがフ...

2つのVirtualBox仮想ネットワークをブリッジするLinuxブリッジメソッドの手順

この記事は、この時期の「ピーターから奪ってポールに払う」という仕事のスタイルに対する私の不満から生ま...

MySQL 関数インデックス最適化ソリューション

MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...

HTML でフォーム コントロールを無効にする 2 つの方法: readonly と disabled

Web ページを作成する過程では、フォームがよく使用されます。しかし、フォーム上のコントロールを変更...