Как извлечь год и месяц из даты в PostgreSQL?



Я хочу выбрать sql:
SELECT "year-month" from table group by "year-month" AND order by date, где
год-месяц-формат для даты "1978-01", "1923-12".
выберите to_char работы couse, но не "правильный" порядок .

1527   6  

6 ответов:

date_part(текст, временная отметка)

http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html

to_char(timestamp, 'YYYY-MM')

вы говорите, что порядок не "правильный", но я не могу понять, почему это неправильно (по крайней мере, до тех пор, пока не наступит 10000 год).

использовать 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;

вы можете использовать функцию извлечения pgSQL

EX- date = 1981-05-31
EXTRACT(MONTH FROM date)
it will Give 05

для более подробной информации pgsql Дата-Время

1 вариант

date_trunc('month', timestamp_column)::date

он будет поддерживать формат даты со всеми месяцами, начиная с первого дня.

пример:

2016-08-01
2016-09-01
2016-10-01
2016-11-01
2016-12-01
2017-01-01

2-й вариант

to_char(timestamp_column, 'YYYY-MM')

это решение, предложенное @yairchu, отлично работало в моем случае. Я действительно хотел отказаться от информации "день".

Comments

    Ничего не найдено.