Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggabungkan Lajur Tarikh dan Masa Berasingan menjadi Lajur DateTime Tunggal dalam MS SQL Server?

Bagaimanakah Saya Boleh Menggabungkan Lajur Tarikh dan Masa Berasingan menjadi Lajur DateTime Tunggal dalam MS SQL Server?

Linda Hamilton
Lepaskan: 2025-01-17 17:22:10
asal
562 orang telah melayarinya

How Can I Combine Separate Date and Time Columns into a Single DateTime Column in MS SQL Server?

Menggabungkan Lajur Tarikh dan Masa dalam MS SQL Server: Panduan Komprehensif

Banyak reka bentuk pangkalan data menyimpan maklumat tarikh dan masa merentas dua lajur berasingan. Panduan ini menerangkan cara menggabungkannya dengan cekap menjadi satu lajur datetime dalam MS SQL Server.

Penyelesaian

Dengan mengandaikan lajur "Tarikh" anda hanya mengandungi nilai tarikh (bahagian masa adalah sifar) dan lajur "Masa" anda hanya mengandungi nilai masa (bahagian tarikh ialah 1 Januari 1900), operasi penambahan mudah yang mengejutkan berfungsi:

<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
Salin selepas log masuk

Memahami Mekanisme

Tambahan yang kelihatan mudah ini memanfaatkan perwakilan dalaman nilai datetime dalam versi SQL Server yang lebih lama. Setiap nilai datetime disimpan sebagai dua integer 4-bait: satu untuk tarikh dan satu untuk masa. Menambahnya akan menghasilkan gabungan bitwise, menghasilkan satu nilai datetime.

Mengendalikan Versi Pelayan SQL dan Jenis Data yang Lebih Baharu

Untuk SQL Server 2008 dan kemudian, jenis data DATE dan TIME telah diperkenalkan, bersama DATETIME dan DATETIME2. Penambahan langsung tidak lagi terpakai. Untuk menggabungkan DATE dan TIME dalam versi yang lebih baharu ini, penghantaran eksplisit ke DATETIME adalah penting:

<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
Salin selepas log masuk
Salin selepas log masuk

Selain itu, penambahan terus nilai datetime2 boleh menyebabkan kehilangan ketepatan. Untuk memastikan ketepatan, tukar kepada DATETIME sebelum menggabungkan:

<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
Salin selepas log masuk
Salin selepas log masuk

Pendekatan ini menjamin gabungan yang tepat dan boleh dipercayai bagi komponen tarikh dan masa anda ke dalam satu lajur datetime, tanpa mengira versi SQL Server anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Lajur Tarikh dan Masa Berasingan menjadi Lajur DateTime Tunggal dalam MS SQL Server?. 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