Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membuat Nilai Datetime dengan Betul dari Hari, Bulan dan Tahun dalam T-SQL?
Pembinaan nilai tarikh dan masa T-SQL: cipta tarikh dan masa dengan betul dari nilai hari, bulan dan tahun
Menukar komponen tarikh diskret kepada nilai masa tarikh tunggal ialah tugas biasa dalam SQL Server. Panduan ini meneroka cara yang betul untuk membuat tarikh masa daripada nilai hari, bulan dan tahun untuk memastikan perwakilan tarikh yang tepat.
Masalahnya
Menggunakan fungsi DATEPART untuk menggabungkan komponen tarikh individu selalunya menghasilkan keputusan yang salah. Ungkapan CAST(DATEPART(year, DATE) '-' DATEPART(month, DATE) '-' DATEPART(day, DATE) AS DATETIME)
yang disediakan dalam soalan tidak menyusun nilai datetime dengan betul.
Penyelesaian
Cara terbaik untuk mencipta masa tarikh daripada komponen tarikh tertentu ialah melaksanakan operasi aritmetik pada nilai. Pernyataan berikut menunjukkan pendekatan ini:
<code class="language-sql">SELECT DateAdd(day, @DayOfMonth - 1, DateAdd(month, @Month - 1, DateAdd(Year, @Year-1900, 0)))</code>
Pernyataan ini mengambil kesempatan daripada perwakilan dalaman nilai datetime dalam SQL Server, di mana bahagian pertama mewakili bilangan hari sejak 1 Januari 1900, dan bahagian kedua mewakili bahagian pecahan hari (masa) .
Alternatif
Bermula dengan SQL Server 2012, fungsi terbina dalam bernama DATEFROMPARTS(year, month, day)
telah diperkenalkan yang boleh digunakan terus untuk tujuan ini:
<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth)</code>
Pertimbangan tahun lompat
Apabila berurusan dengan tahun lompat, sentiasa pastikan anda melakukan penambahan tahun terlebih dahulu untuk mengambil kira hari tambahan pada bulan Februari. Pernyataan diubah suai berikut menyelesaikan masalah:
<code class="language-sql">SELECT DateAdd(month, @Month - 1, DateAdd(year, @Year-1900, @DayOfMonth - 1))</code>
Kesimpulan
Dengan menggunakan kaedah ini, pembangun boleh mencipta nilai masa tarikh secara cekap daripada komponen hari, bulan dan tahun individu dalam T-SQL, memastikan ketepatan perwakilan tarikh dan pengendalian tahun lompat yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Nilai Datetime dengan Betul dari Hari, Bulan dan Tahun dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!