Answers:
date_part(text, timestamp)
例如
date_part('month', timestamp '2001-02-16 20:38:40'),
date_part('year', timestamp '2001-02-16 20:38:40')
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
to_char(timestamp, 'YYYY-MM')
您说该命令不是“正确的”,但是我看不出为什么它是错误的(至少直到10000年出现)。
ORDER BY
约会。
ORDER BY to_char(timestamp, 'YYYY-MM')
。或者,如果您这样做了SELECT to_char(timestamp, 'YYYY-MM') AS date
,则可以简单地使用ORDER BY date
。
使用该date_trunc
方法截断一天(或您想要的其他任何时间,例如,星期,年,日等)。
按月对订单的销售进行分组的示例:
select
SUM(amount) as sales,
date_trunc('month', created_at) as date
from orders
group by date
order by date DESC;
您可以使用以下命令截断所有信息date_trunc(text, timestamp)
:
select date_trunc('month',created_at)::date as date
from orders
order by date DESC;
created_at = '2019-12-16 18:28:13'
输出1:
date_trunc('day',created_at)
// 2019-12-16 00:00:00
输出2:
date_trunc('day',created_at)::date
// 2019-12-16
输出3:
date_trunc('month',created_at)::date
// 2019-12-01
输出4:
date_trunc('year',created_at)::date
// 2019-01-01
它适用于“大于”功能而不是小于。
例如:
select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) > '2000' limit 10;
工作正常。
但对于
select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) < '2000' limit 10;
我出错了。