Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Nilai Datetime daripada Komponen Hari, Bulan dan Tahun yang Berasingan dalam T-SQL?

Bagaimana untuk Mencipta Nilai Datetime daripada Komponen Hari, Bulan dan Tahun yang Berasingan dalam T-SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-16 14:00:06625semak imbas

How to Create a Datetime Value from Separate Day, Month, and Year Components in 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!

Kenyataan:
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