Gabung medan tarikh dan masa dalam MS SQL Server
Apabila bekerja dengan data yang mengandungi lajur tarikh dan masa yang berasingan, anda perlu menggabungkannya ke dalam medan masa tarikh tunggal. Artikel ini akan meneroka cara untuk mencapai ini dalam MS SQL Server.
Gunakan padding sifar untuk menggabungkan medan
Jika komponen masa lajur "Tarikh" semuanya sifar dan komponen tarikh lajur "Masa" semuanya sifar (iaitu tarikh asas: 1 Januari 1900), kita hanya boleh menambahnya untuk mendapatkan hasil yang betul :
<code class="language-sql">SELECT Combined = MyDate + MyTime FROM MyTable</code>
Ini berfungsi kerana tarikh dan masa disimpan sebagai dua integer 4-bait, dengan 4 bait kiri mewakili tarikh dan 4 bait kanan mewakili masa. Dengan menambahkannya bersama-sama, kami menggabungkan komponen tarikh dan masa dengan berkesan.
Gabungkan medan menggunakan jenis SQL Server 2008
Dalam SQL Server 2008 dan kemudian, jenis data Tarikh dan Masa telah diperkenalkan. Jika anda menggunakan jenis ini, anda boleh menambahkannya dengan menghantarnya ke datetime:
<code class="language-sql">SELECT Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable</code>
Cegah kehilangan ketepatan
Dalam SQL Server 2008 dan kemudian, penambahan nilai tarikh dan masa mungkin mengakibatkan kehilangan ketepatan. Untuk mengelakkan ini, salah satu nilai harus dinaikkan ke jenis datetime2 menggunakan fungsi CONVERT:
<code class="language-sql">SELECT Combined = CONVERT(datetime2, MyDate) + MyTime FROM MyTable</code>
Dengan mengikut kaedah ini, anda boleh menggabungkan lajur tarikh dan masa dengan berkesan ke dalam medan masa tarikh tunggal dalam MS SQL Server, tanpa mengira jenis data yang digunakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Medan Tarikh dan Masa Berasingan ke dalam Medan DateTime Tunggal dalam MS SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!