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

MySQLのタイムゾーンを変更すると、データベースのDateTimeフィールドの値が変更されますか?

    原則として、そうすべきではありません。値のタイプに応じて、変更しない理由はさまざまです。主にDATETIMEとTIMESTAMPです。

    DATETIME値は変換されないため、タイムゾーンに依存しません。

    TIMESTAMP値は、現在のタイムゾーンからUTCに変換されて保存され、UTCから現在のタイムゾーンに戻されて取得されます(ここのマニュアルからの直接引用---かなり新しいバージョンのMySQLを使用していると思います)。 DATETIMEなどの他のタイプでは発生しません。)デフォルトでは、各接続の現在のタイムゾーンはサーバーの時刻です。タイムゾーンは接続ごとに設定できます。タイムゾーン設定が一定である限り、保存したのと同じ値を取得します。TIMESTAMP値を保存してからタイムゾーンを変更して値を取得すると、取得した値は保存した値とは異なります。これは、同じタイムゾーンが変換に使用されなかったために発生します。両方向。」 ( http://dev.mysql.com/doc/refman /5.5/en/datetime.html

    したがって、どちらの場合も、サーバーに実際に保存されているデータは変更されませんが(本来あるべき状態です)、クエリに表示される値は前後で異なる場合があります。



    1. T-SQLは、2つの日付の間の稼働日数を取得します

    2. phpシングルトンデータベース接続、このコードは悪い習慣ですか?

    3. ヌル値の以前の値を取得する方法

    4. Where句のOracleDateTime?