タイムスタンプの格納と検索について
筋トレ応援団の筋トレ履歴データをPostgreSQLに格納するのですが、将来的には
グローバルで使われることを考慮してどのように
格納すればいいのか割と真面目に考えたつもり。
DBはタイムゾーン付きのtimestampを使用する
CREATE TABLEでtimestamp with time zoneタイプで定義した。
あとは、insert文でcurrent_timestampを使うだけ。日本時間で保存されることになる。
今月の筋トレ回数を求める検索
クライアントのタイムゾーンで検索してあげればいい。将来的にはAsia/Tokyoを可変にすればいいのではないか。
PostgreSQLにタイムゾーンの変換を委譲しちゃう感じ。
var moment = require('moment-timezone');
var today = new moment().tz('Asia/Tokyo');
var firstDay = new moment({year : today.year(), month: today.month(), day: 1}).tz('Asia/Tokyo').format();
var lastDay = new moment({year : today.year(), month: today.month()+ 1, day: 0}).tz('Asia/Tokyo').format();