Chcę wybrać sql
SELECT "year-month" from table group by "year-month" AND order by date
:, gdzie rok-miesiąc - format daty „1978-01”, „1923-12”.
wybierz to_char of couse work , ale nie „właściwą” kolejność:
to_char(timestamp_column, 'YYYY-MM')
sql
postgresql
Bdfy
źródło
źródło
Odpowiedzi:
na przykład
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
źródło
Mówisz, że kolejność nie jest „dobra”, ale ja nie rozumiem, dlaczego jest niewłaściwa (przynajmniej do czasu, gdy nadejdzie rok 10000).
źródło
ORDER BY
randkować.ORDER BY to_char(timestamp, 'YYYY-MM')
. Lub alternatywnie, jeśli takSELECT to_char(timestamp, 'YYYY-MM') AS date
, możesz po prostu użyćORDER BY date
.Użyj
date_trunc
metody, aby skrócić dzień (lub cokolwiek innego, np. Tydzień, rok, dzień itp.)Przykład grupowania sprzedaży z zamówień według miesięcy:
źródło
Możesz skrócić wszystkie informacje po miesiącu, używając
date_trunc(text, timestamp)
:Przykład:
Wejście:
Wyjście 1:
Wyjście 2:
Wyjście 3:
Wyjście 4:
źródło
1 opcja
Zachowa format daty z wszystkimi miesiącami zaczynającymi się od pierwszego dnia.
Przykład:
2. opcja
To rozwiązanie zaproponowane przez @yairchu sprawdziło się w moim przypadku. Naprawdę chciałem odrzucić informacje o „dniu”.
źródło
Możesz użyć funkcji EXTRACT pgSQL
Aby uzyskać więcej informacji, PGSQL Date-Time
źródło
Działa dla funkcji „większe niż” nie mniej niż.
Na przykład:
działa dobrze.
ale dla
Otrzymuję błąd.
źródło