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
Lepaskan: 2025-01-16 14:00:06
asal
624 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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