我是postgres的新手,非常感谢任何建议。我有一个带有timestamp
列的postgres表,其值的格式为:1970-01-01 00:00:00
我的目标是选择过去三个月的记录 - 2016年12月,2017年1月和2017年2月。如何使用SELECT
仅使用读取权限来编写此查询?
当我开始时:
SELECT to_char("start_time", 'YYYY-MM-DD HH:MM:SS') FROM trips;
时间转换为AM / PM,但我只对按月和年分别提取和分组感兴趣
答案 0 :(得分:2)
你走了:
SELECT *
FROM trips
WHERE start_time BETWEEN '2016-01-01 00:00:00'::timestamp AND '2017-02-28 23:59:59'::timestamp;
答案 1 :(得分:0)
这是一种方法:
select t.*
from t
where start_date >= date_trunc('month',now() - interval '3' month) and
start_date < date_trunc('month', now());
答案 2 :(得分:0)
您可以使用extract
或date_trunc
函数在postgresql中提取月份。
非常类似于问题get last three month records from table
有关postgresql中日期时间函数的更多详细信息,请使用以下链接。
https://www.postgresql.org/docs/9.1/static/functions-datetime.html