【发布时间】:2012-10-29 15:56:26
【问题描述】:
我有表 users。
列:
- user_id - 整数
- user_date - 整数(unix 时间戳)
有些行有 user_date,有些有 NULL。
我需要找到所有 user_id,其中 user_date 包括 '2012-10-21' 和 '2012-10-24' 之间的时间段
【问题讨论】:
标签: postgresql timestamp unix-timestamp
我有表 users。
列:
有些行有 user_date,有些有 NULL。
我需要找到所有 user_id,其中 user_date 包括 '2012-10-21' 和 '2012-10-24' 之间的时间段
【问题讨论】:
标签: postgresql timestamp unix-timestamp
SELECT *
FROM users
WHERE user_date BETWEEN
EXTRACT(EPOCH FROM date '2012-10-21') AND
EXTRACT(EPOCH FROM date '2012-10-24' + interval '1 day');
如果您不希望包含结束日期,请删除添加一天的位。
【讨论】:
user_date 字段是一个时间戳,如果一天没有添加到范围的末尾,它只会包括在结束日期的第一秒添加的用户。跨度>
select *
from users
where
timestamp 'epoch' + user_date * interval '1 second' between '2012-10-21' and '2012-10-24'
and
user_date is not null
【讨论】:
user_date 上使用索引,对吗?