English
YAPC::Asia 2015 のセッションで、MySQL のタイムゾーンの話が出ていましたが、以前タイムゾーン周りで少しはまったことがあったのを思い出したので書いてみます。 MySQLのデフォルトのタイムゾーンは mysqld 起動時のシステム設定です。TZ 環境変数の値か、変数が設定されていなければ /etc/localtime(Ubuntu の場合) です。 # TZ=Japan /usr/sbin/mysqld mysql> SHOW VARIABLES LIKE '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | JST | | time_zone | SYSTEM | +---------
こんにちは、さるまりんです。 MySQLで select current_timestamp; として、現在の日時を取得しようとすると、なぜか-9時間の日時が取れる。。 -9時間といえばUTCでとれているということかなと思いMySQLのタイムゾーンをチェック。 mysql> show variables like '%time_zone%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | system_time_zone | UTC | | time_zone | UTC | +------------------+-------+ 2 rows in set (0.01 sec) やはりそのようです。 /etc/my.cnfで設定を変更します。 [mysqld]
時間データ型のサマリーについて説明します。時間型のプロパティーおよびストレージ要件の追加情報については、セクション11.3「日付と時間型」およびセクション11.7「データ型のストレージ要件」を参照してください。時間値を演算する関数の説明については、セクション12.7「日付および時間関数」を参照してください。 DATE および DATETIME 範囲の説明では、「サポートされている」とは、以前の値は機能するが、保証はないことを意味します。 MySQL 5.6.4 以降では、マイクロ秒 (6 桁) までの精度を持つ TIME、DATETIME、および TIMESTAMP 値の小数秒に対応できるようになりました。小数秒部を含むカラムを定義するには、type_name(fsp) の構文を使用します。ここで、type_name は TIME、DATETIME、または TIMESTAMP であり、fs
MySQLのinteractive_timeout(アイドルタイムアウトのようなもの) MySQLの設定でinteractive_timeoutという項目があり、これがディフォルトでは8時間に設定されているようだ。 よって8時間連続で、クエリ等を発行しなければコネクションは自動的に切断されてしまうのだ。 しかし、この設定を無効にする方法が存在しない。0を指定しても無駄である。 最大値は31536000秒(= 365日)なので、これを指定するか。 また、interactive_timeoutと同時にwait_timeoutも設定しておく必要があるよう。 interactive_timeoutとwait_timeoutの値のうち、 小さい値のほうの時間アクセスが無いとコネクションが自動的に切断されるようだ。 結局のところ、my.iniに以下のように追記することで自動切断時間を延ばせる。 [my
ログ格納をSQLiteでやろうとするとctimeをTIMESTAMP型にして勝手に格納されるようにすると便利なんですけれどもこれはMySQLのTIMESTAMPと同じ書式で格納されて、当然ながらタイムゾーンがUTCになっています。 つうわけで、これを日本時間にして取り扱う戦略としては、DateTime::Format::MySQLを使うといいなーていうのが1点目。 次に、DateTime::Formatでは、生成したオブジェクトにタイムゾーン指定しないと、勝手に'UTC'になるなんてことはなく、曖昧なままのよう。だから、一度明示的に $dt->set_time_zone ( 'UTC' ); でタイムゾーンをUTCに指定してあげないと、時刻を正確に示しているオブジェクトにはならないっていう点が2点目。 use DateTime::Format::MySQL; my $timestamp =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く