Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengeluarkan Komponen Masa dengan Cekap daripada Nilai DateTime dalam SQL Server?

Bagaimana untuk Mengeluarkan Komponen Masa dengan Cekap daripada Nilai DateTime dalam SQL Server?

Mary-Kate Olsen
Lepaskan: 2025-01-22 10:40:09
asal
484 orang telah melayarinya

How to Efficiently Remove the Time Component from a DateTime Value in SQL Server?

Mengoptimumkan Data Masa Tarikh: Mengalih Keluar Komponen Masa dalam Pelayan SQL

Cabaran:

Menggunakan medan datetime selalunya memerlukan pengasingan bahagian tarikh, tidak termasuk masa. Artikel ini meneroka kaedah paling cekap untuk tugasan SQL Server biasa ini.

Pendekatan Disyorkan:

Selepas membandingkan teknik yang berbeza, penyelesaian yang paling cekap dan fleksibel ialah:

SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)
Salin selepas log masuk

Analisis Prestasi:

Kaedah ini secara konsisten menunjukkan prestasi unggul, terutamanya dengan set data yang besar. Fleksibiliti yang wujud meliputi pengiraan nilai berkaitan tarikh lain (cth., menentukan hari pertama dalam bulan itu).

Kaedah dan Had Alternatif:

Menukar kepada varchar menggunakan CONVERT(char(11), GETDATE(), 113) menawarkan prestasi yang boleh diterima dalam beberapa kes, tetapi membawa potensi risiko. Ketidakkonsistenan format bahasa/tarikh boleh timbul disebabkan oleh penukaran varchar. Tambahan pula, kaedah ini tidak mempunyai kebolehsesuaian pendekatan DATEADD/DATEDIFF.

SQL Server 2008 dan Seterusnya:

SQL Server 2008 dan versi yang lebih baru menyediakan alternatif yang diperkemas: penghantaran terus ke date. Contohnya: CAST(GETDATE() AS DATE). Ini memudahkan proses dengan ketara.

Pengindeksan dan Pertimbangan Prestasi:

Menggunakan fungsi atau operasi CAST dalam klausa WHERE boleh memberi kesan negatif terhadap penggunaan indeks. Perancangan yang teliti adalah penting untuk mengekalkan prestasi pertanyaan yang optimum.

Pengendalian datetime2:

Prinsip yang sama digunakan untuk datetime2 (diperkenalkan dalam SQL Server 2008 dan dipertingkatkan dalam SQL Server 2019). Berikut ialah contoh:

DECLARE @datetime2value datetime2 = '02180912 11:45'; -- Year 0218 for demonstration within datetime2 range
DECLARE @datetime2epoch datetime2 = '19000101';

SELECT DATEADD(dd, DATEDIFF(dd, @datetime2epoch, @datetime2value), @datetime2epoch);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Komponen Masa dengan Cekap daripada Nilai DateTime dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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