ユーザ単位でタイムゾーン間で翻訳するWebアプリケーションが必要な場合は、すべての日付/時刻フィールドでTIMESTAMPをボード全体で使用しないでください。 TIMESTAMP値がUTCに格納され、取得時に接続のタイムゾーンに変換されているとします。なぜMySQLのTIMESTAMPを全面的に使用しないのですか?
私はIRCでこの質問をし、MySQLのドキュメントを読んだり、広範囲にGoogleを検索したりして、私の同僚に尋ねましたが、TIMESTAMPを使用しない魅力的な理由はまだありません。
注:TIMESTAMPには1970年から2038年の限定された範囲があります。それは私の場合に問題になることはありません。また、MySQLでPHPを使用しています。
レスポンスありがとうございます、なぜ私はDATETIMEを使用する方が良いのか分かりません。PHPの日付関数を使用している場所であれば、データベースマネージャがいつでもどこでも自分のコードベース全体に100を超える変換を行わなければならないと考えていますこの仕事は私のためです。 –
とにかくその日付の変換を行う必要があります。 TIMESTAMPは変換されたローカルサーバー時刻に戻ります。これはユーザーのタイムゾーンではありません。 UTCで日付を保存し、UIレベルのユーザーのタイムゾーンに変換する必要があります。 – Randolpho
ユーザのセッション内でデータベース接続が行われるたびに、「SET time_zone = 'users timezone'」を実行するとどうなりますか?それはあなたの心の中で良い解決策になりますか? –