Saya ingin memilih sql
SELECT "year-month" from table group by "year-month" AND order by date
:, di mana tahun-bulan - format untuk tanggal "1978-01", "1923-12".
pilih to_char of couse work , tetapi bukan urutan yang "benar":
to_char(timestamp_column, 'YYYY-MM')
sql
postgresql
Bdfy.dll
sumber
sumber
Jawaban:
misalnya
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
sumber
Anda mengatakan bahwa urutannya tidak "benar", tetapi saya tidak dapat melihat mengapa itu salah (setidaknya sampai tahun 10000 tiba).
sumber
ORDER BY
berkencan.ORDER BY to_char(timestamp, 'YYYY-MM')
. Atau alternatifnya jika Anda melakukannya,SELECT to_char(timestamp, 'YYYY-MM') AS date
Anda dapat langsung menggunakanORDER BY date
.Gunakan
date_trunc
metode untuk memotong hari (atau apa pun yang Anda inginkan, misalnya, minggu, tahun, hari, dll ..)Contoh pengelompokan penjualan dari pesanan menurut bulan:
sumber
Anda dapat memotong semua informasi setelah sebulan menggunakan
date_trunc(text, timestamp)
:Contoh:
Input:
Keluaran 1:
Keluaran 2:
Keluaran 3:
Keluaran 4:
sumber
Opsi 1
Ini akan mempertahankan format tanggal dengan semua bulan mulai dari hari pertama.
Contoh:
Opsi ke-2
Solusi yang diusulkan oleh @yairchu ini berfungsi dengan baik dalam kasus saya. Saya benar-benar ingin membuang info 'hari'.
sumber
Anda dapat menggunakan fungsi EXTRACT pgSQL
Untuk lebih jelasnya PGSQL Tanggal-Waktu
sumber
Ia bekerja untuk fungsi "lebih besar dari" tidak kurang dari.
Sebagai contoh:
bekerja dengan baik.
tapi untuk
Saya mendapatkan kesalahan.
sumber