Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun dalam Format 'Bulan-Tahun' Tersuai?

Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun dalam Format 'Bulan-Tahun' Tersuai?

Susan Sarandon
Lepaskan: 2024-12-29 00:30:10
asal
326 orang telah melayarinya

How Can I Group SQL Data by Month and Year in a Custom

Pengumpulan SQL mengikut Bulan dan Tahun dalam Format Tersuai

Apabila bekerja dengan cap masa dalam SQL, ia boleh berguna untuk mengumpulkan data mengikut khusus selang waktu, seperti bulan atau tahun. Walau bagaimanapun, format lalai untuk jenis data DATE atau TIMESTAMP mungkin tidak sentiasa sejajar dengan pembentangan yang diingini. Dalam hal ini, cabaran biasa adalah untuk memaparkan tarikh dalam format tersuai, seperti "bulan-tahun".

Pertimbangkan pertanyaan SQL 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

Pertanyaan ini mengumpulkan data mengikut bulan dan tahun dan memaparkan jumlah agregat untuk perbelanjaan pemasaran dan hasil. Walau bagaimanapun, lajur pertama, "Mjesec," pada masa ini hanya menunjukkan bulan, cth., "9". Untuk mengubah suai output untuk memaparkan "bulan-tahun", gabungan pemutus dan penyambungan rentetan diperlukan.

Satu pendekatan melibatkan menghantar nilai bulan dan tahun kepada rentetan dan kemudian menggabungkannya secara manual:

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

Ini akan mengeluarkan format "bulan-tahun" yang diingini, cth., "9-2011". Sebagai alternatif, seperti yang dicadangkan oleh 40-Love, pemutus boleh dilakukan dengan sifar pendahuluan, menghasilkan klausa GROUP BY berikut:

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

Variasi ini menambah sifar pendahuluan untuk memastikan bulan itu sentiasa dipaparkan sebagai dua -nombor digit.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun dalam Format 'Bulan-Tahun' Tersuai?. 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