sql >> データベース >  >> RDS >> Mysql

アプリでは日付時刻は正しいが、mysqlでは間違っている[タイムゾーン]

    MySQLの列の種類は何ですか? DATETIMEだと思います。このタイプは「時間の瞬間」を保存せず、「時計の時間」を保存するため、異なるタイムゾーンで異なる瞬間を意味する可能性があります。

    MySQLドライバーがjava.util.DateをDATETIME列に書き込む場合、同じjava.util.Dateが異なるタイムゾーンで異なる時間を意味する可能性があるため、「houronclock」を書き込むためにいくつかのタイムゾーンを選択する必要があります。 MySQLサーバーのローカルタイムゾーンと同じように時間を保存します。

    LocalDateTimeはDATETIMEに似ているため、この問題は発生しません。これは、瞬間ではなく、時計の時間を表します。したがって、年/月/日-時/分/秒はデータベースに保存されるだけです。 HibernateログでLocalDateTimeがそのまま表示され、Dateの横にタイムゾーン(「CST」)があることに注意してください。

    通常、時刻は常にUTCで保存することをお勧めします。したがって、DateやLocalDateTimeではなく、DateTimeを使用してください。 jadiraコンバーターを使用したDateTimeは、常にDATETIMEをUTCとして保存/読み取ります。




    1. データベースからドロップダウンCodeIgniterにデータを表示する

    2. selectステートメントの列の順序はクエリ速度に影響しますか?

    3. 生成されたSQLを変数から実行するにはどうすればよいですか?

    4. データベースのdplyrフィルター関数でSQL関数を渡します