したがって、本質的に次の列を持つセッションテーブルがあります。
セッション ID | ユーザーエージェント | last_activity (UNIX タイムスタンプ)
このクエリを使用して、5 分前に作成されたセッションから session_id と last_activity を表示しようとしたとき
SELECT session_id, from_unixtime('last_activity' / 1000, '%Y-%m-%d %H:%i') AS session_time
FROM gw_sessions
WHERE last_activity >= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 5 MINUTE) * 1000
それは動作しません。
したがって、次のクエリを使用してすべてのセッション (session_id と last_activity) を表示するだけで、クエリを簡素化しようとしました
SELECT session_id, from_unixtime('last_activity' / 1000, '%Y-%m-%d %H:%i') AS session_time
FROM gw_sessions
結果はこのように表示されます
session_id | session_time
abcdefg... --> 1970-01-01 07:00 (epoch)
値が正しく変換されなかったのはなぜですか? また、2 つの日付 (now()) を UNIX 形式で保存された日付と正しく比較するにはどうすればよいですか?