Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?

Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?

Patricia Arquette
Lepaskan: 2024-12-28 12:35:36
asal
229 orang telah melayarinya

How to Group SQL Data by Month and Year and Format the Output as

Pengumpulan SQL Mengikut Bulan dan Tahun

Dalam SQL, mengumpulkan data mengikut bulan dan tahun ialah tugas biasa apabila menganalisis data temporal. Untuk mencapai matlamat ini, anda boleh menggunakan fungsi MONTH() dan YEAR() bersama-sama klausa GROUP BY.

Pernyataan Masalah

Seorang pengguna menghadapi masalah semasa membuat pertanyaan jadual Pesanan untuk memaparkan lajur 'tarikh' sebagai "bulan-tahun" (cth., "9-2011"). Mereka telah menggunakan pertanyaan berikut:

SELECT MONTH(date) + '.' + YEAR(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

Walau bagaimanapun, pertanyaan ini hanya memaparkan bulan (mis., "9") dan pengguna mahu memasukkan kedua-dua bulan dan tahun dalam output.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh menggunakan fungsi CAST() untuk menukar bulan dan tahun nilai ke dalam rentetan dan menggabungkannya dengan tanda sempang di antaranya. Berikut ialah pertanyaan yang dikemas kini:

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) 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 CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
Salin selepas log masuk

Pertanyaan ini akan mengembalikan lajur 'tarikh' dalam format yang diingini, memaparkan kedua-dua bulan dan tahun.

Pilihan lain ialah menggunakan sifar pendahuluan semasa menghantar ke memastikan pemformatan yang konsisten. Ini boleh dicapai menggunakan fungsi right():

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

Pendekatan ini akan menambah sifar pendahuluan kepada nilai bulan satu digit, menghasilkan pemformatan seragam (mis., "09-2011").

Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan