2011-07-15 16 views
2

私はユーザーがコメントを投稿できるフォーラムを持っています。コメントが作成されると、対応する日時の値がUTC形式で格納されます。MySQL:ローカルタイムゾーンへのUTCの自動マッピング

私は現地時間でデータを提示するつもりです、 'ASIA /シンガポール';

2オプション:

  1. 使用convert_tzデータベースを照会するたび。私は のようなアプローチではないので、クエリごとにselect_exprを書き直させてしまいます。第二の選択肢については
  2. 使用SET time_zone = 'ASIA/SINGAPORE';

、私はコマンド(ここではありませんSuper権限)の有効範囲であるかを知りたいです。より具体的に言うと、PHPアプリケーションを使用している場合、db接続を閉じるときにconfigが無効になりますか?私は毎回DBに問い合わせるコマンドを発行する必要がありますか?

Tnx。

答えて

3

MySQLの変数のスコープは、接続(libmysql < - > mysqldの間)です。つまり、PHP自体やアプリケーションライブラリがmysql接続プーリングを使用している場合、この変数が(目に見えない接続切り替えのために)消滅していることがわかり、接続解除後に変数が確実に消えてしまうことを意味します。

あなたのクエリを書き換える満足していない場合は、おそらくその場で良いと考えTZ名を選択することができ - 、たとえば次のように、限り、あなたはログインしているユーザーのIDを持っているとして、ユーザーテーブルを形成:

SELECT convert_tz(..., ..., (select user_tz from users where user_id = ...)) 
+0

私は現在、Convert_tz関数を使用しています。クエリごとにタイムゾーンを選択する必要はなく、ユーザーセッションに保存します。 – olix20

関連する問題