Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?

Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?

Susan Sarandon
Susan Sarandonasal
2025-01-13 07:55:42981semak imbas

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

Ekstrak tarikh daripada nilai masa tarikh SQL Server

Kebanyakan aplikasi SQL mengendalikan data yang mengandungi komponen tarikh dan masa. Walau bagaimanapun, dalam beberapa kes kami hanya perlu mengekstrak bahagian tarikh dan membuang maklumat masa. Ini boleh dicapai dengan berkesan melalui pelbagai teknik dalam SQL Server.

Kaedah yang paling berkesan

Walaupun beberapa kaedah wujud, cara paling berkesan untuk mengekstrak tarikh daripada datetime dalam SQL Server ialah menggunakan gabungan fungsi DATEADD() dan fungsi DATEDIFF(). Kaedah ini termasuk langkah-langkah berikut:

  1. Gunakan DATEDIFF(DAY, 0, ) untuk mengira bilangan hari antara 0 dan tarikh yang diberikan. Langkah ini secara berkesan mengira offset harian dari zaman (1 Januari 1900).
  2. Gunakan DATEADD() pada medan DAY dan gunakan hasil langkah 1 untuk mendapatkan tarikh tarikh baharu dengan set semula komponen masanya kepada 00:00:00.

Contohnya:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>

Berbanding dengan pilihan lain seperti menukar menggunakan CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) atau CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) , ini kaedah telah terbukti sebagai kaedah terpantas dan paling berkesan.

Tanda Aras

Ujian prestasi pada set data yang mengandungi lebih 130 juta baris rekod dengan cap masa tepat hingga milisaat menunjukkan keputusan berikut:

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

Perlu diingat bahawa prestasi mungkin berbeza-beza bergantung pada saiz, pengedaran dan faktor lain data anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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