如何在PostgreSQL中提取年月日?
我想selectsql: SELECT "year-month" from table group by "year-month" AND order by date
,其中year-month – 格式为date“1978-01”,“1923-12”。 selectcouse工作的to_char,但不是“正确”的顺序。
date_part(文本,时间戳)
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
to_char(timestamp, 'YYYY-MM')
你说这个命令不是“正确的”,但是我不明白为什么它是错误的(至less在一万年之前)。
使用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;
第一个选项
date_trunc('month', timestamp_column)::date
它将保持所有月份从第一天开始的date格式。
例:
2016-08-01 2016-09-01 2016-10-01 2016-11-01 2016-12-01 2017-01-01
第二个选项
to_char(timestamp_column, 'YYYY-MM')
@yairchu提出的解决scheme在我的情况下工作得很好。 我真的想放弃'一天'的信息。