【发布时间】:2013-04-26 07:21:12
【问题描述】:
所以我有一个会话表,它本质上具有以下列:
session_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)
为什么它没有正确转换值以及如何将两个日期 (now()) 与以 unix 格式正确存储的日期进行比较?
【问题讨论】:
-
数据库中last_activity的字段类型和值是什么?
-
INT(10) 值为 1367481523,我使用在线工具进行了快速转换,时间戳代表正确的日期..
标签: mysql datetime unix-timestamp