Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Nilai Datetime daripada Komponen Hari, Bulan dan Tahun yang Berasingan dalam T-SQL?
Membina Nilai DATETIME dalam T-SQL daripada Bahagian Tarikh Individu
Dalam versi lama SQL Server (seperti SQL Server 2005), mencipta nilai DATETIME
terus daripada komponen hari, bulan dan tahun yang berasingan boleh menjadi rumit dan terdedah kepada ralat. Panduan ini menggariskan beberapa kaedah untuk mencapai ini dengan pasti.
Kaedah 1: Menggunakan DATEADD
untuk Pembinaan Datetime
Kaedah ini memanfaatkan fungsi DATEADD
untuk membina DATETIME
langkah demi langkah:
<code class="language-sql">DECLARE @DayOfMonth TINYINT; SET @DayOfMonth = 13; DECLARE @Month TINYINT; SET @Month = 6; DECLARE @Year INT; SET @Year = 2006; SELECT DATEADD(day, @DayOfMonth - 1, DATEADD(month, @Month - 1, DATEADD(year, @Year - 1900, 0)));</code>
Penolakan 1 daripada @DayOfMonth
dan @Month
mengambil kira fakta bahawa DATEADD
berfungsi dengan offset dari tarikh asas (1 Januari 1900).
Kaedah 2: Alternatif DATEADD
Sintaks
Pendekatan yang lebih ringkas menggunakan DATEADD
ialah:
<code class="language-sql">SELECT DATEADD(yy, @Year - 1900, DATEADD(m, @Month - 1, @DayOfMonth -1));</code>
Ini mencapai hasil yang sama dengan susunan DATEADD
panggilan yang sedikit berbeza.
Kaedah 3: DATEFROMPARTS
(SQL Server 2012 dan lebih baru)
SQL Server 2012 dan versi yang lebih baru menawarkan fungsi DATEFROMPARTS
yang mudah:
<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth);</code>
Ini ialah kaedah yang paling mudah jika versi SQL Server anda menyokongnya.
Mengendalikan Tahun Lompat
Walaupun DATEFROMPARTS
mengendalikan tahun lompat secara automatik, kaedah DATEADD
cukup teguh untuk mengendalikannya dengan betul juga. Tiada pelarasan khas diperlukan untuk tahun lompat dalam contoh yang disediakan.
Pilih kaedah yang paling sesuai untuk versi SQL Server dan gaya pengekodan anda. DATEFROMPARTS
ialah pendekatan pilihan kerana kesederhanaan dan kejelasannya jika versi SQL Server anda membenarkannya.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Nilai Datetime daripada Komponen Hari, Bulan dan Tahun yang Berasingan dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!