Pemangkasan Masa Tarikh Pelayan SQL: Amalan dan Kaedah Terbaik
Mengalih keluar bahagian masa daripada nilai datetime adalah tugas yang kerap dalam SQL Server. Panduan ini meneroka pelbagai teknik, menyerlahkan kekuatan dan kelemahan mereka.
Pendekatan Disyorkan: Memanfaatkan Fungsi CAST (SQL Server 2008 dan lebih baru)
Untuk SQL Server 2008 dan versi seterusnya, fungsi CAST
menyediakan penyelesaian yang paling mudah dan boleh dipercayai:
<code class="language-sql">CAST(your_datetime_column AS DATE)</code>
Pendekatan ini cekap dan mematuhi piawaian ANSI, memastikan keserasian dan kebolehramalan.
Kaedah Standard (Pra-SQL Server 2008)
Sebelum SQL Server 2008, fungsi DATETIMEADD
ialah kaedah pilihan:
<code class="language-sql">DATEADD(DD, DATEDIFF(DD, 0, getdate()), 0)</code>
Ini mengira perbezaan hari dari tarikh rujukan (0) dan menambahkannya semula, dengan berkesan mengalih keluar komponen masa.
Pilihan yang Lebih Pantas, tetapi Kurang Boleh Dipercayai
Alternatif yang lebih pantas, walaupun kurang mudah alih dan berpotensi terdedah kepada perubahan dalam versi SQL Server akan datang, melibatkan penghantaran ke dan dari apungan:
<code class="language-sql">CAST(FLOOR(CAST(your_datetime_column AS FLOAT)) AS DATETIME)</code>
Kaedah ini mengeksploitasi perwakilan binari dalaman bagi nilai datetime. Walau bagaimanapun, pergantungannya pada butiran pelaksanaan menjadikannya kurang mantap.
Kaedah yang Perlu Dielakkan: Menggunakan CONVERT
Menggunakan CONVERT
untuk memotong masa tarikh secara amnya tidak digalakkan. Kebergantungannya pada penukaran rentetan memperkenalkan ketidakcekapan dan potensi isu berkaitan setempat:
<code class="language-sql">CAST(CONVERT(CHAR(11), your_datetime_column, 113) AS DATETIME)</code>
Pengoptimuman Prestasi
Kaedah CAST
(tersedia sejak SQL Server 2008) secara amnya adalah yang paling berkesan. Walau bagaimanapun, strategi yang paling berkesan adalah untuk meminimumkan keperluan untuk pemangkasan tarikh masa melalui reka bentuk pangkalan data yang teliti dan pengoptimuman pertanyaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memotong Masa Tarikh dengan Cekap dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!