Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menghimpunkan Keputusan SQL mengikut Bulan dan Tahun dalam Format Boleh Dibaca Manusia?

Bagaimanakah Saya Boleh Menghimpunkan Keputusan SQL mengikut Bulan dan Tahun dalam Format Boleh Dibaca Manusia?

DDD
Lepaskan: 2024-12-29 02:07:17
asal
840 orang telah melayarinya

How Can I Group SQL Results by Month and Year in a Human-Readable Format?

Mengumpulkan Keputusan SQL mengikut Bulan dan Tahun

Apabila bekerja dengan pangkalan data SQL, selalunya menjadi perlu untuk mengumpulkan data mengikut tempoh masa, seperti bulan atau tahun. Secara lalai, klausa SQL GROUP BY mengumpulkan baris berdasarkan bulan atau tahun individu. Walau bagaimanapun, anda mungkin menghadapi situasi di mana anda perlu memaparkan keputusan dalam format yang lebih boleh dibaca oleh manusia, seperti "bulan-tahun".

Masalah: Memaparkan Bulan dan Tahun dalam Hasil Berkumpulan

Katakan anda mempunyai pertanyaan yang mengumpulkan data mengikut bulan dan tahun dan memaparkan keputusan seperti berikut:

SELECT MONTH(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
Salin selepas log masuk

Pertanyaan ini akan mengembalikan hasil dengan lajur pertama hanya menunjukkan bulan, cth., "9". Matlamatnya adalah untuk mengubah suai pertanyaan untuk memaparkan bulan dan tahun dalam format gabungan, seperti "9-2011".

Penyelesaian: Nilai Tarikh Hantar

Untuk mencapai matlamat ini, anda boleh menggunakan fungsi CAST untuk menukar nilai bulan dan tahun kepada rentetan:

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, ...
Salin selepas log masuk

Dengan menghantar nilai bulan dan tahun sebagai rentetan, anda boleh menggabungkannya menjadi rentetan tunggal yang menggabungkan bulan dan tahun dalam format "bulan-tahun" yang diingini.

Penyelesaian Alternatif: Sifar Utama

Jika anda memerlukan sifar pendahuluan untuk nilai bulan, anda boleh menggunakan sintaks berikut:

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
Salin selepas log masuk

Ungkapan ini akan memastikan bahawa semua nilai bulan mempunyai sifar pendahuluan, menjadikan keputusan lebih konsisten dan menarik secara visual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Keputusan SQL mengikut Bulan dan Tahun dalam Format Boleh Dibaca Manusia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan