Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Nombor Bulan kepada Nama Bulan dalam Pelayan SQL Tanpa Penyata KES?
SQL Server: Penukaran Nombor Bulan dengan Cekap kepada Nama
Pangkalan data SQL Server selalunya menyimpan bulan sebagai nilai berangka (1 untuk Januari, 2 untuk Februari, dll.). Artikel ini menunjukkan cara menukar perwakilan berangka ini kepada nama bulan yang sepadan tanpa menggunakan penyata CASE
yang menyusahkan.
Memanfaatkan Fungsi DATENAME
Kunci kepada penyelesaian ringkas terletak pada fungsi DATENAME
terbina dalam SQL Server. Fungsi ini mengekstrak bahagian tertentu tarikh, termasuk nama bulan.
Penyelesaian
Pertanyaan SQL berikut dengan elegan mengendalikan penukaran:
<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, @MonthNumber, 0) - 1)</code>
Penjelasan:
DATEADD(MONTH, @MonthNumber, 0)
: Ini menambahkan input @MonthNumber
(mewakili bulan) pada tarikh asas '0' (yang mewakili 1 Januari 1900). Ini dengan bijak meletakkan kita pada hari pertama bulan sasaran.- 1
: Menolak satu hari memastikan DATENAME
mengembalikan nama bulan yang dimaksudkan dengan betul, mengelakkan ralat luar demi satu.DATENAME(MONTH, ...)
: Akhir sekali, DATENAME
mengeluarkan nama bulan daripada tarikh yang dikira.Pendekatan Alternatif:
Alternatif yang sama berkesan ialah:
<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, @MonthNumber, -1))</code>
Ini menambah terus nombor bulan pada tarikh sebulan sebelum 1 Januari, mencapai hasil yang sama dengan cara yang lebih padat sedikit.
Cara Penggunaan:
Cuma gantikan @MonthNumber
dengan nilai bulan berangka (1-12). Pertanyaan kemudiannya akan mengembalikan nama bulan yang sepadan. Contohnya:
<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, 5, 0) - 1); -- Returns 'May'</code>
Atas ialah kandungan terperinci Bagaimana untuk Menukar Nombor Bulan kepada Nama Bulan dalam Pelayan SQL Tanpa Penyata KES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!