Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun dalam Format 'Bulan-Tahun' Tersuai?
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)
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))
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)
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!